@noy-db/hub 0.4.0 → 0.6.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 (438) hide show
  1. package/dist/api-67SBPMMH.js +20 -0
  2. package/dist/attestation/index.js +18 -18
  3. package/dist/{backup-X7F3TCFV.js → backup-GAYWQAFN.js} +16 -11
  4. package/dist/backup-GAYWQAFN.js.map +1 -0
  5. package/dist/blobs/index.js +20 -20
  6. package/dist/broker/index.js +12 -12
  7. package/dist/bundle-handle-5OUAI7CV.js +36 -0
  8. package/dist/bundle-handle-5OUAI7CV.js.map +1 -0
  9. package/dist/cargo/index.js +36 -36
  10. package/dist/{chunk-DQZXPGGZ.js → chunk-24UICKTB.js} +3 -3
  11. package/dist/{chunk-77AEMXFA.js → chunk-24ZLWWEO.js} +1 -1
  12. package/dist/chunk-24ZLWWEO.js.map +1 -0
  13. package/dist/{chunk-2BET5QTS.js → chunk-27TCYH6G.js} +5 -5
  14. package/dist/{chunk-MSMJJB4J.js → chunk-2KIV7BEK.js} +2 -2
  15. package/dist/{chunk-6ZNSB3H6.js → chunk-2LGDCNFJ.js} +2 -2
  16. package/dist/{chunk-GTYFIVIZ.js → chunk-35EBKWQU.js} +5 -5
  17. package/dist/chunk-35EBKWQU.js.map +1 -0
  18. package/dist/{chunk-WBKZUO5V.js → chunk-3737A6EA.js} +3 -3
  19. package/dist/{chunk-ZBYFMI6D.js → chunk-3CLZY46Y.js} +638 -300
  20. package/dist/chunk-3CLZY46Y.js.map +1 -0
  21. package/dist/{chunk-HLKXPJ4V.js → chunk-3EO7RZLJ.js} +6 -6
  22. package/dist/{chunk-JYJFGD2H.js → chunk-3FSX6LDG.js} +2 -2
  23. package/dist/{chunk-MXUT7FTE.js → chunk-3HYWYLXL.js} +2 -2
  24. package/dist/{chunk-IVYQAVWO.js → chunk-3IIPWA75.js} +11 -11
  25. package/dist/{chunk-7H3WWH6J.js → chunk-3UK6STWO.js} +3 -3
  26. package/dist/chunk-46V67XP5.js +117 -0
  27. package/dist/chunk-46V67XP5.js.map +1 -0
  28. package/dist/{chunk-NJ4DYYO5.js → chunk-4HDYQL3J.js} +2 -2
  29. package/dist/{chunk-P4JO3H6R.js → chunk-4MQDV3HZ.js} +2 -2
  30. package/dist/{chunk-X4MVWPHV.js → chunk-4UVDI4XE.js} +3 -3
  31. package/dist/{chunk-LXRTP3AQ.js → chunk-4VCWI42L.js} +2 -2
  32. package/dist/{chunk-QJNCB5SK.js → chunk-747LRSOO.js} +2 -2
  33. package/dist/{chunk-3HUYRN24.js → chunk-7F4DBNSP.js} +3 -3
  34. package/dist/{chunk-UADPR6F4.js → chunk-7G6VDWXB.js} +3 -3
  35. package/dist/{chunk-PTHKZWEH.js → chunk-AHLJSVRL.js} +2 -2
  36. package/dist/{chunk-NFZGZ4AK.js → chunk-AR2JDFAE.js} +2 -2
  37. package/dist/{chunk-3ECU57YH.js → chunk-BPTZ4K5L.js} +11 -11
  38. package/dist/{chunk-KRCBZYTZ.js → chunk-CCZJJ4I2.js} +4 -4
  39. package/dist/{chunk-NYEFP7DY.js → chunk-CJ73OLMW.js} +2 -2
  40. package/dist/{chunk-Q36YXK77.js → chunk-CYQOUTMY.js} +3 -3
  41. package/dist/{chunk-RBTVFPHF.js → chunk-DCMQR46R.js} +5 -5
  42. package/dist/{chunk-TG634KCO.js → chunk-DG27IUVI.js} +2 -2
  43. package/dist/{chunk-E23UGFVC.js → chunk-DMQCLZ4Z.js} +8 -6
  44. package/dist/chunk-DMQCLZ4Z.js.map +1 -0
  45. package/dist/{chunk-ZNWSG7XC.js → chunk-DPJTDNUF.js} +68 -34
  46. package/dist/chunk-DPJTDNUF.js.map +1 -0
  47. package/dist/{chunk-V6UQZA2H.js → chunk-E6427JU2.js} +2 -2
  48. package/dist/{chunk-JEI6JJNI.js → chunk-EK7DT5BT.js} +220 -13
  49. package/dist/chunk-EK7DT5BT.js.map +1 -0
  50. package/dist/chunk-EPFF7LOX.js +14 -0
  51. package/dist/chunk-EPFF7LOX.js.map +1 -0
  52. package/dist/{chunk-TWPK7KUJ.js → chunk-F3GVO44K.js} +6 -6
  53. package/dist/{chunk-QD46HPZG.js → chunk-FAXZQ5UF.js} +2 -2
  54. package/dist/{chunk-IG6KUWBX.js → chunk-FNSMZQS4.js} +2 -2
  55. package/dist/{chunk-BLBAQRBM.js → chunk-FUHKW252.js} +2 -2
  56. package/dist/{chunk-SU6SGWXM.js → chunk-FY343IZR.js} +8 -8
  57. package/dist/{chunk-KPZS5QAQ.js → chunk-GQ3BX5EA.js} +9 -1
  58. package/dist/chunk-GQ3BX5EA.js.map +1 -0
  59. package/dist/{chunk-DAFBJS4Y.js → chunk-GS5RT2KK.js} +4 -4
  60. package/dist/{chunk-5UQ7Y6SQ.js → chunk-HFKGIBMD.js} +3 -3
  61. package/dist/{chunk-QZWTRENR.js → chunk-HNGSV2YC.js} +133 -1
  62. package/dist/chunk-HNGSV2YC.js.map +1 -0
  63. package/dist/chunk-HNHCQ556.js +63 -0
  64. package/dist/chunk-HNHCQ556.js.map +1 -0
  65. package/dist/chunk-HS7HNYBD.js +91 -0
  66. package/dist/chunk-HS7HNYBD.js.map +1 -0
  67. package/dist/{chunk-SHEEBRZ4.js → chunk-HVQGCKY4.js} +2 -2
  68. package/dist/{chunk-35NMVJ7I.js → chunk-HXGUIPQB.js} +3 -3
  69. package/dist/{chunk-ERGECZEI.js → chunk-JEM2IGS3.js} +9 -9
  70. package/dist/chunk-JH3OHQM4.js +260 -0
  71. package/dist/chunk-JH3OHQM4.js.map +1 -0
  72. package/dist/{chunk-L3YYLT4E.js → chunk-JIUVJ4M7.js} +2 -2
  73. package/dist/{chunk-55LX6FSX.js → chunk-JRCYZEHU.js} +2 -2
  74. package/dist/{chunk-SFBYQMZM.js → chunk-JSRU5W2M.js} +5 -5
  75. package/dist/{chunk-NM5UYF6Q.js → chunk-JXIDGFKS.js} +2 -2
  76. package/dist/{chunk-VYYM3MEN.js → chunk-KHKKD62N.js} +16 -2
  77. package/dist/chunk-KHKKD62N.js.map +1 -0
  78. package/dist/{chunk-FQ5CHJR7.js → chunk-KUDZVJKQ.js} +21 -2
  79. package/dist/chunk-KUDZVJKQ.js.map +1 -0
  80. package/dist/{chunk-RO5NM6UI.js → chunk-KZ3KMDN3.js} +2 -2
  81. package/dist/{chunk-HZZP2ZIG.js → chunk-LBGPO5RL.js} +6 -6
  82. package/dist/{chunk-ZFG5EBI3.js → chunk-LTU4FLHG.js} +57 -27
  83. package/dist/chunk-LTU4FLHG.js.map +1 -0
  84. package/dist/{chunk-CLE3TMIS.js → chunk-MC2LFTQM.js} +5 -2
  85. package/dist/{chunk-467SWYT5.js → chunk-MJWCLSQL.js} +17 -8
  86. package/dist/chunk-MJWCLSQL.js.map +1 -0
  87. package/dist/{chunk-W3G5REIU.js → chunk-MSWYQLMQ.js} +2 -2
  88. package/dist/{chunk-WK7ULBTP.js → chunk-MVOWXQHN.js} +5 -3
  89. package/dist/chunk-MVOWXQHN.js.map +1 -0
  90. package/dist/{chunk-2J6UEN2V.js → chunk-MXZ5TSTR.js} +118 -4
  91. package/dist/chunk-MXZ5TSTR.js.map +1 -0
  92. package/dist/{chunk-SGDPRCC4.js → chunk-MZ5ZFO2D.js} +3 -3
  93. package/dist/{chunk-NBXFCQX4.js → chunk-NQCNSVGI.js} +9 -9
  94. package/dist/chunk-NQCNSVGI.js.map +1 -0
  95. package/dist/{chunk-EFJAAFBW.js → chunk-NQRJ5AJO.js} +2 -2
  96. package/dist/{chunk-Q2SEJMP2.js → chunk-NVU7ZMPN.js} +2 -2
  97. package/dist/{chunk-ZTLOXFPB.js → chunk-OF3L2SD6.js} +2 -2
  98. package/dist/{chunk-LLYIMSQQ.js → chunk-OMSAULZM.js} +11 -11
  99. package/dist/{chunk-SF2ZIRD6.js → chunk-OSFPNKY4.js} +3 -3
  100. package/dist/{chunk-WUHEP3HH.js → chunk-P7NGLLUF.js} +5 -5
  101. package/dist/{chunk-RQ4ZI4ZI.js → chunk-PGAPBZEK.js} +7 -7
  102. package/dist/{chunk-T2MOJF76.js → chunk-PP5CO2PR.js} +6 -6
  103. package/dist/{chunk-Q5YJCVJY.js → chunk-RLWY6Z44.js} +227 -41
  104. package/dist/chunk-RLWY6Z44.js.map +1 -0
  105. package/dist/{chunk-QGIBI6GL.js → chunk-ROWL352P.js} +5 -5
  106. package/dist/{chunk-ZHDSUZQU.js → chunk-RPXL6KSX.js} +4 -4
  107. package/dist/{chunk-DTFA5DO4.js → chunk-SKONR2OL.js} +3 -3
  108. package/dist/{chunk-AT2JJEKJ.js → chunk-SRGJET2F.js} +16 -5
  109. package/dist/chunk-SRGJET2F.js.map +1 -0
  110. package/dist/{chunk-4ZKNC6A6.js → chunk-T4GPR2IR.js} +2 -2
  111. package/dist/{chunk-NLYALJMY.js → chunk-TFZ7LLOQ.js} +113 -36
  112. package/dist/chunk-TFZ7LLOQ.js.map +1 -0
  113. package/dist/{chunk-TS5XLBZR.js → chunk-TLNNHG3A.js} +4 -4
  114. package/dist/{chunk-6UBZ6I5Z.js → chunk-UHXCLPGC.js} +2 -2
  115. package/dist/{chunk-KD4HGBJV.js → chunk-V5C5NNBR.js} +4 -4
  116. package/dist/{chunk-WYUAEZSC.js → chunk-VBY6ZLJT.js} +15 -14
  117. package/dist/chunk-VBY6ZLJT.js.map +1 -0
  118. package/dist/{chunk-AKKRXT23.js → chunk-VCETL77O.js} +34 -16
  119. package/dist/chunk-VCETL77O.js.map +1 -0
  120. package/dist/{chunk-5GQEU4DN.js → chunk-VJFMXYKP.js} +2 -2
  121. package/dist/{chunk-5DRROK5W.js → chunk-VMCCGUQB.js} +2 -2
  122. package/dist/{chunk-IXNCZTWA.js → chunk-W3TVWF6N.js} +2 -2
  123. package/dist/{chunk-W66AM5IB.js → chunk-WLYIROCJ.js} +2 -2
  124. package/dist/{chunk-OWHP3H5C.js → chunk-XB7LUDKM.js} +4 -4
  125. package/dist/{chunk-KYRDJI5O.js → chunk-XBLKM73C.js} +10 -10
  126. package/dist/{chunk-MHMLXJ3I.js → chunk-YAWK6AWF.js} +2 -2
  127. package/dist/{chunk-PWPYO73B.js → chunk-ZGGVOADG.js} +5 -5
  128. package/dist/{chunk-YGK2HMLR.js → chunk-ZK4CO2KZ.js} +9 -9
  129. package/dist/chunk-ZK4CO2KZ.js.map +1 -0
  130. package/dist/{chunk-DSDXAKIP.js → chunk-ZVF37PKE.js} +34 -5
  131. package/dist/chunk-ZVF37PKE.js.map +1 -0
  132. package/dist/{chunk-IFOH7RBI.js → chunk-ZWMO5GL5.js} +5 -5
  133. package/dist/{chunk-LRRX57UA.js → chunk-ZXJXDHNK.js} +4 -4
  134. package/dist/classified/index.js +5 -5
  135. package/dist/{classified-marker-LE54HWSX.js → classified-marker-MH3ON5OL.js} +3 -3
  136. package/dist/collection-facade-AHT7FATG.js +45 -0
  137. package/dist/{computed-AB45PS4V.js → computed-6G5M3UPH.js} +3 -3
  138. package/dist/consent/index.js +9 -9
  139. package/dist/cover/index.js +3 -3
  140. package/dist/custody/index.js +11 -11
  141. package/dist/{dead-filter-V3LVWYEJ.js → dead-filter-U575NGSH.js} +2 -2
  142. package/dist/debug/index.js +1 -1
  143. package/dist/{delegation-JDUMAF6L.js → delegation-PDYL6RWT.js} +10 -10
  144. package/dist/derivations/index.js +12 -12
  145. package/dist/derive-AKT4KU36.js +22 -0
  146. package/dist/directory/index.js +10 -10
  147. package/dist/{dispatch-6TV3DGO6.js → dispatch-4XIJSFTT.js} +5 -5
  148. package/dist/{dispatch-W7NWQ637.js → dispatch-N5HGVUGU.js} +18 -18
  149. package/dist/{enclave-YFCLPIDR.js → enclave-OPK24QDR.js} +13 -9
  150. package/dist/executor-3JZ4POTW.js +28 -0
  151. package/dist/executor-CYJQLKKI.js +9 -0
  152. package/dist/executor-S4QIKEHW.js +9 -0
  153. package/dist/export-accessible-CPTP5STN.js +23 -0
  154. package/dist/extract-partition-TWXPHVU7.js +38 -0
  155. package/dist/{fanout-sidecar-273RDMYS.js → fanout-sidecar-T2ZGLQFE.js} +9 -9
  156. package/dist/find-RBBYKXI7.js +11 -0
  157. package/dist/forget/index.js +9 -9
  158. package/dist/guards/index.js +6 -6
  159. package/dist/history/index.js +15 -15
  160. package/dist/i18n/index.js +14 -14
  161. package/dist/index.d.ts +35 -7
  162. package/dist/index.js +279 -202
  163. package/dist/index.js.map +1 -1
  164. package/dist/indexing/index.js +3 -3
  165. package/dist/introspection/index.js +12 -12
  166. package/dist/issue-N74C55X6.js +19 -0
  167. package/dist/kernel/collection-config.d.ts +4 -0
  168. package/dist/kernel/collection.d.ts +34 -8
  169. package/dist/kernel/cutover-transform.d.ts +64 -0
  170. package/dist/kernel/enclave/crypto.d.ts +24 -0
  171. package/dist/kernel/enclave/index.d.ts +2 -1
  172. package/dist/kernel/errors.d.ts +138 -0
  173. package/dist/kernel/noydb.d.ts +10 -1
  174. package/dist/kernel/put-many-atomic.d.ts +45 -0
  175. package/dist/kernel/secret-mode.d.ts +59 -0
  176. package/dist/kernel/types.d.ts +98 -7
  177. package/dist/kernel/validation.d.ts +33 -0
  178. package/dist/kernel/vault.d.ts +32 -6
  179. package/dist/{ledger-XE7JF2I2.js → ledger-DONWFC5M.js} +11 -11
  180. package/dist/liberate-KICI7AJN.js +24 -0
  181. package/dist/{link-set-CGYC3OH5.js → link-set-2TTP4VLO.js} +11 -11
  182. package/dist/managed-secret-EAOYWRYF.js +27 -0
  183. package/dist/materialized-views/index.js +19 -19
  184. package/dist/money/index.js +3 -3
  185. package/dist/noydb-6W2XGQCS.js +83 -0
  186. package/dist/overlay-views/index.js +6 -6
  187. package/dist/periods/index.js +16 -16
  188. package/dist/pod/index.js +121 -12
  189. package/dist/policy/index.js +4 -4
  190. package/dist/port/to/index.d.ts +3 -1
  191. package/dist/port/to/locator.d.ts +84 -0
  192. package/dist/port/with/device-seal-strategy.d.ts +16 -0
  193. package/dist/port/with/strategies.d.ts +2 -0
  194. package/dist/port/with/write-hooks.d.ts +6 -0
  195. package/dist/portability/index.js +8 -8
  196. package/dist/{post-register-LY35EDTJ.js → post-register-ORQOQJCS.js} +6 -6
  197. package/dist/query/index.js +4 -4
  198. package/dist/reduce/index.js +4 -4
  199. package/dist/register-LHETZRJM.js +32 -0
  200. package/dist/registry-AMAZ6QRZ.js +19 -0
  201. package/dist/registry-CZVINVQH.js +9 -0
  202. package/dist/registry-IKUR2MXD.js +9 -0
  203. package/dist/registry-JRIN447B.js +18 -0
  204. package/dist/request-withdrawal-2DN2RGCO.js +31 -0
  205. package/dist/{reveal-T34ADTPY.js → reveal-AG4SCHUQ.js} +6 -6
  206. package/dist/revoke-ZX4NM2CJ.js +24 -0
  207. package/dist/satellites/index.js +1 -1
  208. package/dist/schema-update/index.js +6 -6
  209. package/dist/sealed-record/index.js +12 -12
  210. package/dist/search/index.js +4 -4
  211. package/dist/{seed-JOV54PB3.js → seed-IRCDGIRK.js} +15 -15
  212. package/dist/seed-IRCDGIRK.js.map +1 -0
  213. package/dist/sequence/index.js +9 -9
  214. package/dist/session/index.js +9 -9
  215. package/dist/shadow/index.js +2 -2
  216. package/dist/signer-7KHD4OL2.js +25 -0
  217. package/dist/snapshots/index.js +10 -10
  218. package/dist/{stale-T3V7XEOB.js → stale-K734VACF.js} +10 -10
  219. package/dist/storage-4H2GF6RQ.js +23 -0
  220. package/dist/{store-coordination-provider-AHGFEMFA.js → store-coordination-provider-4SKLSFUG.js} +3 -3
  221. package/dist/sync/index.js +10 -10
  222. package/dist/team/index.js +27 -15
  223. package/dist/tiers/index.js +10 -10
  224. package/dist/to/index.js +28 -3
  225. package/dist/to/index.js.map +1 -1
  226. package/dist/transactions/index.js +3 -3
  227. package/dist/util/index.js +1 -1
  228. package/dist/{verify-7XWHJWUN.js → verify-RO5RTZOJ.js} +5 -5
  229. package/dist/walk-MQHYNDLZ.js +21 -0
  230. package/dist/with-audit/guards/registry.d.ts +8 -1
  231. package/dist/with-audit/guards/types.d.ts +5 -0
  232. package/dist/with-audit/periods/index.d.ts +1 -1
  233. package/dist/with-audit/periods/periods.d.ts +7 -0
  234. package/dist/with-commit/tx/atomic-eligibility.d.ts +13 -11
  235. package/dist/with-formula/derivations/registry.d.ts +6 -0
  236. package/dist/with-formula/derivations/types.d.ts +5 -0
  237. package/dist/with-lookup/indexing/eager-indexes.d.ts +10 -0
  238. package/dist/with-party/team/device-seal.d.ts +25 -0
  239. package/dist/with-party/team/echo-ceremony.d.ts +74 -0
  240. package/dist/with-party/team/echo-secret.d.ts +56 -0
  241. package/dist/with-party/team/index.d.ts +8 -0
  242. package/dist/with-party/team/keyring.d.ts +71 -9
  243. package/dist/with-party/team/rotate-recover.d.ts +99 -5
  244. package/dist/with-pod/bundle-handle.d.ts +9 -0
  245. package/dist/with-pod/bundle.d.ts +100 -2
  246. package/dist/with-pod/format.d.ts +92 -1
  247. package/dist/with-pod/index.d.ts +22 -1
  248. package/dist/with-pod/open.d.ts +117 -0
  249. package/dist/with-pod/redirect.d.ts +78 -0
  250. package/dist/with-pod/signature.d.ts +13 -0
  251. package/dist/with-shape/introspection/behaviors.d.ts +100 -0
  252. package/dist/with-shape/introspection/derivation-key.d.ts +17 -0
  253. package/dist/with-shape/introspection/describe.d.ts +36 -0
  254. package/dist/with-shape/introspection/index.d.ts +1 -0
  255. package/dist/with-shape/introspection/subsystem-matrix.d.ts +22 -0
  256. package/dist/with-shape/introspection/types.d.ts +2 -1
  257. package/dist/with-shape/links/names.d.ts +14 -0
  258. package/dist/with-shape/manifest/derive.d.ts +86 -0
  259. package/dist/with-shape/manifest/reserved-collections.d.ts +27 -0
  260. package/dist/with-shape/manifest/storage.d.ts +62 -0
  261. package/dist/with-shape/manifest/sync.d.ts +135 -0
  262. package/dist/with-shape/manifest/types.d.ts +49 -0
  263. package/dist/with-shape/manifest/writer.d.ts +32 -0
  264. package/dist/with-shape/persisted-schemas/field-ids.d.ts +29 -0
  265. package/dist/with-shape/persisted-schemas/register.d.ts +3 -0
  266. package/dist/with-shape/persisted-schemas/types.d.ts +17 -0
  267. package/dist/with-shape/schema-update/fence-controller.d.ts +34 -0
  268. package/dist/with-shape/schema-update/fence.d.ts +9 -0
  269. package/dist/with-shape/schema-update/strategies.d.ts +18 -2
  270. package/dist/with-shape/schema-update/types.d.ts +11 -0
  271. package/dist/with-sync/engine.d.ts +17 -0
  272. package/dist/with-sync/presence.d.ts +31 -1
  273. package/dist/withdraw-accessible-JSDQHXHE.js +28 -0
  274. package/dist/withdraw-accessible-JSDQHXHE.js.map +1 -0
  275. package/package.json +3 -3
  276. package/dist/api-SI2IVBQO.js +0 -20
  277. package/dist/backup-X7F3TCFV.js.map +0 -1
  278. package/dist/chunk-2J6UEN2V.js.map +0 -1
  279. package/dist/chunk-467SWYT5.js.map +0 -1
  280. package/dist/chunk-4JQK3L4V.js +0 -41
  281. package/dist/chunk-4JQK3L4V.js.map +0 -1
  282. package/dist/chunk-77AEMXFA.js.map +0 -1
  283. package/dist/chunk-AKKRXT23.js.map +0 -1
  284. package/dist/chunk-AT2JJEKJ.js.map +0 -1
  285. package/dist/chunk-DSDXAKIP.js.map +0 -1
  286. package/dist/chunk-E23UGFVC.js.map +0 -1
  287. package/dist/chunk-FQ5CHJR7.js.map +0 -1
  288. package/dist/chunk-GTYFIVIZ.js.map +0 -1
  289. package/dist/chunk-JEI6JJNI.js.map +0 -1
  290. package/dist/chunk-JQ2AX4T5.js +0 -23
  291. package/dist/chunk-JQ2AX4T5.js.map +0 -1
  292. package/dist/chunk-KPZS5QAQ.js.map +0 -1
  293. package/dist/chunk-NBXFCQX4.js.map +0 -1
  294. package/dist/chunk-NLYALJMY.js.map +0 -1
  295. package/dist/chunk-Q5YJCVJY.js.map +0 -1
  296. package/dist/chunk-QZWTRENR.js.map +0 -1
  297. package/dist/chunk-S7GIXBXV.js +0 -129
  298. package/dist/chunk-S7GIXBXV.js.map +0 -1
  299. package/dist/chunk-SBHN6QUT.js +0 -25
  300. package/dist/chunk-SBHN6QUT.js.map +0 -1
  301. package/dist/chunk-VYYM3MEN.js.map +0 -1
  302. package/dist/chunk-WK7ULBTP.js.map +0 -1
  303. package/dist/chunk-WYUAEZSC.js.map +0 -1
  304. package/dist/chunk-YGK2HMLR.js.map +0 -1
  305. package/dist/chunk-ZBYFMI6D.js.map +0 -1
  306. package/dist/chunk-ZFG5EBI3.js.map +0 -1
  307. package/dist/chunk-ZNWSG7XC.js.map +0 -1
  308. package/dist/collection-facade-DO2AABZT.js +0 -45
  309. package/dist/derive-ZPGVLE2Q.js +0 -22
  310. package/dist/executor-FPHKWDWT.js +0 -28
  311. package/dist/executor-IEBLTBCW.js +0 -9
  312. package/dist/executor-RM7XWQDU.js +0 -9
  313. package/dist/export-accessible-EKM3HGB2.js +0 -23
  314. package/dist/extract-partition-LS4ET5A6.js +0 -38
  315. package/dist/find-OZMTRIK3.js +0 -11
  316. package/dist/issue-LIA7FXBJ.js +0 -19
  317. package/dist/liberate-WZ3RHVKW.js +0 -24
  318. package/dist/noydb-ZLPVCDES.js +0 -81
  319. package/dist/register-6RIBIT3I.js +0 -25
  320. package/dist/registry-7Y5WF7GS.js +0 -9
  321. package/dist/registry-BWD2ED52.js +0 -8
  322. package/dist/registry-MUSL4AW6.js +0 -19
  323. package/dist/registry-RON4WHAP.js +0 -18
  324. package/dist/request-withdrawal-FT3ORAWN.js +0 -31
  325. package/dist/revoke-HC7WG3HE.js +0 -24
  326. package/dist/seed-JOV54PB3.js.map +0 -1
  327. package/dist/signer-CTWOH6KT.js +0 -25
  328. package/dist/storage-LLNLPWWB.js +0 -23
  329. package/dist/walk-G3NFEP5L.js +0 -21
  330. package/dist/withdraw-accessible-ANSVG6XG.js +0 -28
  331. /package/dist/{api-SI2IVBQO.js.map → api-67SBPMMH.js.map} +0 -0
  332. /package/dist/{chunk-DQZXPGGZ.js.map → chunk-24UICKTB.js.map} +0 -0
  333. /package/dist/{chunk-2BET5QTS.js.map → chunk-27TCYH6G.js.map} +0 -0
  334. /package/dist/{chunk-MSMJJB4J.js.map → chunk-2KIV7BEK.js.map} +0 -0
  335. /package/dist/{chunk-6ZNSB3H6.js.map → chunk-2LGDCNFJ.js.map} +0 -0
  336. /package/dist/{chunk-WBKZUO5V.js.map → chunk-3737A6EA.js.map} +0 -0
  337. /package/dist/{chunk-HLKXPJ4V.js.map → chunk-3EO7RZLJ.js.map} +0 -0
  338. /package/dist/{chunk-JYJFGD2H.js.map → chunk-3FSX6LDG.js.map} +0 -0
  339. /package/dist/{chunk-MXUT7FTE.js.map → chunk-3HYWYLXL.js.map} +0 -0
  340. /package/dist/{chunk-IVYQAVWO.js.map → chunk-3IIPWA75.js.map} +0 -0
  341. /package/dist/{chunk-7H3WWH6J.js.map → chunk-3UK6STWO.js.map} +0 -0
  342. /package/dist/{chunk-NJ4DYYO5.js.map → chunk-4HDYQL3J.js.map} +0 -0
  343. /package/dist/{chunk-P4JO3H6R.js.map → chunk-4MQDV3HZ.js.map} +0 -0
  344. /package/dist/{chunk-X4MVWPHV.js.map → chunk-4UVDI4XE.js.map} +0 -0
  345. /package/dist/{chunk-LXRTP3AQ.js.map → chunk-4VCWI42L.js.map} +0 -0
  346. /package/dist/{chunk-QJNCB5SK.js.map → chunk-747LRSOO.js.map} +0 -0
  347. /package/dist/{chunk-3HUYRN24.js.map → chunk-7F4DBNSP.js.map} +0 -0
  348. /package/dist/{chunk-UADPR6F4.js.map → chunk-7G6VDWXB.js.map} +0 -0
  349. /package/dist/{chunk-PTHKZWEH.js.map → chunk-AHLJSVRL.js.map} +0 -0
  350. /package/dist/{chunk-NFZGZ4AK.js.map → chunk-AR2JDFAE.js.map} +0 -0
  351. /package/dist/{chunk-3ECU57YH.js.map → chunk-BPTZ4K5L.js.map} +0 -0
  352. /package/dist/{chunk-KRCBZYTZ.js.map → chunk-CCZJJ4I2.js.map} +0 -0
  353. /package/dist/{chunk-NYEFP7DY.js.map → chunk-CJ73OLMW.js.map} +0 -0
  354. /package/dist/{chunk-Q36YXK77.js.map → chunk-CYQOUTMY.js.map} +0 -0
  355. /package/dist/{chunk-RBTVFPHF.js.map → chunk-DCMQR46R.js.map} +0 -0
  356. /package/dist/{chunk-TG634KCO.js.map → chunk-DG27IUVI.js.map} +0 -0
  357. /package/dist/{chunk-V6UQZA2H.js.map → chunk-E6427JU2.js.map} +0 -0
  358. /package/dist/{chunk-TWPK7KUJ.js.map → chunk-F3GVO44K.js.map} +0 -0
  359. /package/dist/{chunk-QD46HPZG.js.map → chunk-FAXZQ5UF.js.map} +0 -0
  360. /package/dist/{chunk-IG6KUWBX.js.map → chunk-FNSMZQS4.js.map} +0 -0
  361. /package/dist/{chunk-BLBAQRBM.js.map → chunk-FUHKW252.js.map} +0 -0
  362. /package/dist/{chunk-SU6SGWXM.js.map → chunk-FY343IZR.js.map} +0 -0
  363. /package/dist/{chunk-DAFBJS4Y.js.map → chunk-GS5RT2KK.js.map} +0 -0
  364. /package/dist/{chunk-5UQ7Y6SQ.js.map → chunk-HFKGIBMD.js.map} +0 -0
  365. /package/dist/{chunk-SHEEBRZ4.js.map → chunk-HVQGCKY4.js.map} +0 -0
  366. /package/dist/{chunk-35NMVJ7I.js.map → chunk-HXGUIPQB.js.map} +0 -0
  367. /package/dist/{chunk-ERGECZEI.js.map → chunk-JEM2IGS3.js.map} +0 -0
  368. /package/dist/{chunk-L3YYLT4E.js.map → chunk-JIUVJ4M7.js.map} +0 -0
  369. /package/dist/{chunk-55LX6FSX.js.map → chunk-JRCYZEHU.js.map} +0 -0
  370. /package/dist/{chunk-SFBYQMZM.js.map → chunk-JSRU5W2M.js.map} +0 -0
  371. /package/dist/{chunk-NM5UYF6Q.js.map → chunk-JXIDGFKS.js.map} +0 -0
  372. /package/dist/{chunk-RO5NM6UI.js.map → chunk-KZ3KMDN3.js.map} +0 -0
  373. /package/dist/{chunk-HZZP2ZIG.js.map → chunk-LBGPO5RL.js.map} +0 -0
  374. /package/dist/{chunk-CLE3TMIS.js.map → chunk-MC2LFTQM.js.map} +0 -0
  375. /package/dist/{chunk-W3G5REIU.js.map → chunk-MSWYQLMQ.js.map} +0 -0
  376. /package/dist/{chunk-SGDPRCC4.js.map → chunk-MZ5ZFO2D.js.map} +0 -0
  377. /package/dist/{chunk-EFJAAFBW.js.map → chunk-NQRJ5AJO.js.map} +0 -0
  378. /package/dist/{chunk-Q2SEJMP2.js.map → chunk-NVU7ZMPN.js.map} +0 -0
  379. /package/dist/{chunk-ZTLOXFPB.js.map → chunk-OF3L2SD6.js.map} +0 -0
  380. /package/dist/{chunk-LLYIMSQQ.js.map → chunk-OMSAULZM.js.map} +0 -0
  381. /package/dist/{chunk-SF2ZIRD6.js.map → chunk-OSFPNKY4.js.map} +0 -0
  382. /package/dist/{chunk-WUHEP3HH.js.map → chunk-P7NGLLUF.js.map} +0 -0
  383. /package/dist/{chunk-RQ4ZI4ZI.js.map → chunk-PGAPBZEK.js.map} +0 -0
  384. /package/dist/{chunk-T2MOJF76.js.map → chunk-PP5CO2PR.js.map} +0 -0
  385. /package/dist/{chunk-QGIBI6GL.js.map → chunk-ROWL352P.js.map} +0 -0
  386. /package/dist/{chunk-ZHDSUZQU.js.map → chunk-RPXL6KSX.js.map} +0 -0
  387. /package/dist/{chunk-DTFA5DO4.js.map → chunk-SKONR2OL.js.map} +0 -0
  388. /package/dist/{chunk-4ZKNC6A6.js.map → chunk-T4GPR2IR.js.map} +0 -0
  389. /package/dist/{chunk-TS5XLBZR.js.map → chunk-TLNNHG3A.js.map} +0 -0
  390. /package/dist/{chunk-6UBZ6I5Z.js.map → chunk-UHXCLPGC.js.map} +0 -0
  391. /package/dist/{chunk-KD4HGBJV.js.map → chunk-V5C5NNBR.js.map} +0 -0
  392. /package/dist/{chunk-5GQEU4DN.js.map → chunk-VJFMXYKP.js.map} +0 -0
  393. /package/dist/{chunk-5DRROK5W.js.map → chunk-VMCCGUQB.js.map} +0 -0
  394. /package/dist/{chunk-IXNCZTWA.js.map → chunk-W3TVWF6N.js.map} +0 -0
  395. /package/dist/{chunk-W66AM5IB.js.map → chunk-WLYIROCJ.js.map} +0 -0
  396. /package/dist/{chunk-OWHP3H5C.js.map → chunk-XB7LUDKM.js.map} +0 -0
  397. /package/dist/{chunk-KYRDJI5O.js.map → chunk-XBLKM73C.js.map} +0 -0
  398. /package/dist/{chunk-MHMLXJ3I.js.map → chunk-YAWK6AWF.js.map} +0 -0
  399. /package/dist/{chunk-PWPYO73B.js.map → chunk-ZGGVOADG.js.map} +0 -0
  400. /package/dist/{chunk-IFOH7RBI.js.map → chunk-ZWMO5GL5.js.map} +0 -0
  401. /package/dist/{chunk-LRRX57UA.js.map → chunk-ZXJXDHNK.js.map} +0 -0
  402. /package/dist/{classified-marker-LE54HWSX.js.map → classified-marker-MH3ON5OL.js.map} +0 -0
  403. /package/dist/{collection-facade-DO2AABZT.js.map → collection-facade-AHT7FATG.js.map} +0 -0
  404. /package/dist/{computed-AB45PS4V.js.map → computed-6G5M3UPH.js.map} +0 -0
  405. /package/dist/{dead-filter-V3LVWYEJ.js.map → dead-filter-U575NGSH.js.map} +0 -0
  406. /package/dist/{delegation-JDUMAF6L.js.map → delegation-PDYL6RWT.js.map} +0 -0
  407. /package/dist/{derive-ZPGVLE2Q.js.map → derive-AKT4KU36.js.map} +0 -0
  408. /package/dist/{dispatch-6TV3DGO6.js.map → dispatch-4XIJSFTT.js.map} +0 -0
  409. /package/dist/{dispatch-W7NWQ637.js.map → dispatch-N5HGVUGU.js.map} +0 -0
  410. /package/dist/{enclave-YFCLPIDR.js.map → enclave-OPK24QDR.js.map} +0 -0
  411. /package/dist/{executor-FPHKWDWT.js.map → executor-3JZ4POTW.js.map} +0 -0
  412. /package/dist/{executor-IEBLTBCW.js.map → executor-CYJQLKKI.js.map} +0 -0
  413. /package/dist/{executor-RM7XWQDU.js.map → executor-S4QIKEHW.js.map} +0 -0
  414. /package/dist/{export-accessible-EKM3HGB2.js.map → export-accessible-CPTP5STN.js.map} +0 -0
  415. /package/dist/{extract-partition-LS4ET5A6.js.map → extract-partition-TWXPHVU7.js.map} +0 -0
  416. /package/dist/{fanout-sidecar-273RDMYS.js.map → fanout-sidecar-T2ZGLQFE.js.map} +0 -0
  417. /package/dist/{find-OZMTRIK3.js.map → find-RBBYKXI7.js.map} +0 -0
  418. /package/dist/{issue-LIA7FXBJ.js.map → issue-N74C55X6.js.map} +0 -0
  419. /package/dist/{ledger-XE7JF2I2.js.map → ledger-DONWFC5M.js.map} +0 -0
  420. /package/dist/{liberate-WZ3RHVKW.js.map → liberate-KICI7AJN.js.map} +0 -0
  421. /package/dist/{link-set-CGYC3OH5.js.map → link-set-2TTP4VLO.js.map} +0 -0
  422. /package/dist/{noydb-ZLPVCDES.js.map → managed-secret-EAOYWRYF.js.map} +0 -0
  423. /package/dist/{register-6RIBIT3I.js.map → noydb-6W2XGQCS.js.map} +0 -0
  424. /package/dist/{post-register-LY35EDTJ.js.map → post-register-ORQOQJCS.js.map} +0 -0
  425. /package/dist/{registry-7Y5WF7GS.js.map → register-LHETZRJM.js.map} +0 -0
  426. /package/dist/{registry-BWD2ED52.js.map → registry-AMAZ6QRZ.js.map} +0 -0
  427. /package/dist/{registry-MUSL4AW6.js.map → registry-CZVINVQH.js.map} +0 -0
  428. /package/dist/{registry-RON4WHAP.js.map → registry-IKUR2MXD.js.map} +0 -0
  429. /package/dist/{request-withdrawal-FT3ORAWN.js.map → registry-JRIN447B.js.map} +0 -0
  430. /package/dist/{revoke-HC7WG3HE.js.map → request-withdrawal-2DN2RGCO.js.map} +0 -0
  431. /package/dist/{reveal-T34ADTPY.js.map → reveal-AG4SCHUQ.js.map} +0 -0
  432. /package/dist/{signer-CTWOH6KT.js.map → revoke-ZX4NM2CJ.js.map} +0 -0
  433. /package/dist/{stale-T3V7XEOB.js.map → signer-7KHD4OL2.js.map} +0 -0
  434. /package/dist/{storage-LLNLPWWB.js.map → stale-K734VACF.js.map} +0 -0
  435. /package/dist/{walk-G3NFEP5L.js.map → storage-4H2GF6RQ.js.map} +0 -0
  436. /package/dist/{store-coordination-provider-AHGFEMFA.js.map → store-coordination-provider-4SKLSFUG.js.map} +0 -0
  437. /package/dist/{verify-7XWHJWUN.js.map → verify-RO5RTZOJ.js.map} +0 -0
  438. /package/dist/{withdraw-accessible-ANSVG6XG.js.map → walk-MQHYNDLZ.js.map} +0 -0
@@ -288,6 +288,23 @@ export declare class KeyringExpiredError extends NoydbError {
288
288
  expiresAt: string;
289
289
  });
290
290
  }
291
+ /**
292
+ * Thrown when a plain single-string secret is offered against an
293
+ * echo-mode keyring. Echo keyrings unlock ONLY via the stepwise
294
+ * ceremony (`beginEchoUnlock`) or a structured `EchoSecretParts`
295
+ * value — never a single field (spec AG-1, #940).
296
+ */
297
+ export declare class EchoCeremonyRequiredError extends NoydbError {
298
+ constructor();
299
+ }
300
+ /** Echo ceremony: the typed prompt failed its verifier. */
301
+ export declare class WrongPromptError extends NoydbError {
302
+ constructor();
303
+ }
304
+ /** Echo ceremony (degraded path): the TYPED echo failed its verifier. */
305
+ export declare class WrongEchoError extends NoydbError {
306
+ constructor();
307
+ }
291
308
  /**
292
309
  * Thrown when an `@noy-db/as-*` import is attempted but the invoking
293
310
  * keyring lacks the required import-capability bit.
@@ -361,6 +378,35 @@ export declare class StoreCapabilityError extends NoydbError {
361
378
  readonly capability: string;
362
379
  constructor(capability: string, callerApi: string, storeName?: string);
363
380
  }
381
+ /**
382
+ * Thrown by `StoreLocator.resolve()` (the `@noy-db/hub/to` Locator seam,
383
+ * #945) when a `StoreDescriptor.kind` has no registered factory. Names both
384
+ * the offending kind and every kind currently registered on the locator, so
385
+ * the fix — register the missing factory, or correct a typo'd kind string —
386
+ * is visible without a debugger.
387
+ */
388
+ export declare class UnknownStoreKindError extends NoydbError {
389
+ /** The unregistered descriptor kind that was looked up. */
390
+ readonly kind: string;
391
+ /** Every kind currently registered on the locator, for comparison. */
392
+ readonly registeredKinds: readonly string[];
393
+ constructor(kind: string, registeredKinds: readonly string[]);
394
+ }
395
+ /**
396
+ * Thrown by `StoreLocator.register()` (the `@noy-db/hub/to` Locator seam,
397
+ * #945) when `kind` is already registered on the locator. A locator
398
+ * registers each kind exactly once — a duplicate registration is almost
399
+ * always a mistake (a copy-pasted setup block, two satellite packages
400
+ * fighting over the same kind string) — so it fails loudly at the mistake's
401
+ * source rather than silently overwriting (last-wins) and surfacing
402
+ * confusion at some unrelated `resolve()` call later. Mirrors
403
+ * `DuplicateBehaviorNameError`.
404
+ */
405
+ export declare class DuplicateStoreKindError extends NoydbError {
406
+ /** The kind string that was already registered. */
407
+ readonly kind: string;
408
+ constructor(kind: string);
409
+ }
364
410
  export declare class PrivilegeEscalationError extends NoydbError {
365
411
  readonly offendingCollection: string;
366
412
  constructor(offendingCollection: string, message?: string);
@@ -617,6 +663,39 @@ export declare class ConflictError extends NoydbError {
617
663
  readonly version: number;
618
664
  constructor(version: number, message?: string);
619
665
  }
666
+ /**
667
+ * #935 — identity-safe ConflictError detection for store-boundary catches.
668
+ *
669
+ * A store may bind a DIFFERENT copy of `@noy-db/hub/to` than the caller
670
+ * (npm failing to dedupe hub within the peer range in production;
671
+ * src-vs-dist inside the workspace), so its ConflictError is a foreign
672
+ * class identity and a bare `instanceof` silently misses it — CAS retry
673
+ * loops rethrow instead of retrying, and the sync engine misfiles the
674
+ * conflict under `errors` with no resolution run. Every site that catches
675
+ * an error a STORE may have thrown must use this predicate; `instanceof`
676
+ * stays correct only for errors that never cross the store seam.
677
+ * The name check is the contract: every copy sets `name = 'ConflictError'`
678
+ * in its constructor, and the structural `version` field rides along.
679
+ */
680
+ export declare function isConflictError(err: unknown): err is ConflictError;
681
+ /**
682
+ * Thrown by the schema-manifest writer (`with-shape/manifest/writer.ts`,
683
+ * #941 AC #1) when a strict-CAS write to the `_manifest/schema` record
684
+ * loses the race — the stored `_v` no longer matches `expectedVersion`.
685
+ *
686
+ * Unlike {@link ConflictError} (which every other reserved-collection
687
+ * writer catches and retries), the manifest writer REFUSES: it does not
688
+ * re-read, re-apply, and retry. Two concurrent direct edits to the
689
+ * manifest must be refused and surfaced to the caller, never silently
690
+ * merged.
691
+ */
692
+ export declare class ManifestConflictError extends NoydbError {
693
+ /** The actual stored `_v` at the time of conflict. */
694
+ readonly foundVersion: number;
695
+ /** The `expectedVersion` the caller supplied. */
696
+ readonly expectedVersion: number;
697
+ constructor(foundVersion: number, expectedVersion: number, message?: string);
698
+ }
620
699
  /**
621
700
  * Thrown by `LedgerStore.append()` after exhausting its CAS retry
622
701
  * budget under multi-writer contention. Two browser tabs, a
@@ -946,6 +1025,18 @@ export declare class FieldNotQueryableError extends NoydbError {
946
1025
  export declare class BundleIntegrityError extends NoydbError {
947
1026
  constructor(message: string);
948
1027
  }
1028
+ /**
1029
+ * Thrown by `open()` (`with-pod/open.ts`, #941) when the caller supplied
1030
+ * `trustedKeys` and `verifyPodHeader` reports `'untrusted'` or `'tampered'`.
1031
+ * Both are treated the same, fail-closed — same posture as
1032
+ * `RedirectBadSignatureError`: once a caller opts into signature
1033
+ * verification, an unverifiable header is a hard stop, not a soft signal.
1034
+ * `'unsigned'` is deliberately NOT included — a legacy/unsigned pod is
1035
+ * benign and open() proceeds, surfacing the status via `OpenPodResult.verification`.
1036
+ */
1037
+ export declare class PodHeaderVerificationError extends NoydbError {
1038
+ constructor(status: 'untrusted' | 'tampered', keyId?: string);
1039
+ }
949
1040
  /**
950
1041
  * Thrown by `readPod` when the bundle carries
951
1042
  * sealed per-user secrets but no supplied `SealingKeyProvider`
@@ -973,6 +1064,40 @@ export declare class BundleSealMismatchError extends NoydbError {
973
1064
  readonly pid: string;
974
1065
  constructor(userId: string, pid: string);
975
1066
  }
1067
+ /**
1068
+ * Thrown by `followRedirects` when the number of hops followed exceeds
1069
+ * `maxDepth` (default 8) without reaching a terminal (non-redirect) pod.
1070
+ */
1071
+ export declare class RedirectDepthExceededError extends NoydbError {
1072
+ constructor(maxDepth: number);
1073
+ }
1074
+ /**
1075
+ * Thrown by `followRedirects` when a redirect chain revisits a target it has
1076
+ * already followed — an infinite loop rather than progress toward a terminal
1077
+ * pod.
1078
+ */
1079
+ export declare class RedirectLoopError extends NoydbError {
1080
+ constructor(target: string);
1081
+ }
1082
+ /**
1083
+ * Thrown by `followRedirects` when a hop's Redirect record fails
1084
+ * verification — either its `issuedBy` is not in the caller's `trustedKeys`
1085
+ * or its signature does not match the record contents. Both cases are
1086
+ * treated the same, fail-closed: a Redirect is required to be signed by a
1087
+ * trusted key, so an untrusted or forged hop is invalid for following, not
1088
+ * merely "unverified".
1089
+ */
1090
+ export declare class RedirectBadSignatureError extends NoydbError {
1091
+ constructor(target: string);
1092
+ }
1093
+ /**
1094
+ * Thrown by `followRedirects` when the caller's `fetcher` cannot produce the
1095
+ * pod bytes for a hop's target — it returned `null` or threw. `cause` carries
1096
+ * the underlying fetcher error, when there was one.
1097
+ */
1098
+ export declare class RedirectUnreachableError extends NoydbError {
1099
+ constructor(target: string, cause?: unknown);
1100
+ }
976
1101
  /**
977
1102
  * Thrown when `vault.collection()` is called with a name that is
978
1103
  * reserved for NOYDB internal use (any name starting with `_dict_`).
@@ -1653,6 +1778,19 @@ export declare class OverlayIdMismatchError extends NoydbError {
1653
1778
  readonly expected: string;
1654
1779
  constructor(actual: string, expected: string);
1655
1780
  }
1781
+ /**
1782
+ * Thrown at registration if a guard or derivation declares a `name` that
1783
+ * is already registered by another behavior of the same kind in this
1784
+ * vault. `name` is optional on both `GuardSpec` and `DerivationSpec` —
1785
+ * unnamed behaviors never trigger this check — but once given, a name is
1786
+ * the stable per-vault identifier a behavior manifest references, so it
1787
+ * must be unique among behaviors of the same `kind`.
1788
+ */
1789
+ export declare class DuplicateBehaviorNameError extends NoydbError {
1790
+ readonly behaviorName: string;
1791
+ readonly kind: 'guard' | 'derivation';
1792
+ constructor(name: string, kind: 'guard' | 'derivation');
1793
+ }
1656
1794
  /**
1657
1795
  * Thrown when a requested snapshot version does not exist in the
1658
1796
  * snapshot store — either it was never created, was pruned by the
@@ -1,5 +1,5 @@
1
1
  import type { RotateResult } from '../with-party/team/keyring.js';
2
- import type { NoydbOptions, NoydbEventMap, GrantOptions, RevokeOptions, UpdateUserOptions, UserInfo, PushResult, PullResult, PushOptions, PullOptions, SyncStatus, NoydbStore, AccessibleVault, ListAccessibleVaultsOptions, QueryAcrossOptions, QueryAcrossResult, TranslatorAuditEntry, WriteConflict, UserApiFactory, ActiveTier, FactorProofBundle, GateName, VaultPolicy } from './types.js';
2
+ import type { NoydbOptions, NoydbEventMap, GrantOptions, RevokeOptions, UpdateUserOptions, UserInfo, PushResult, PullResult, PushOptions, PullOptions, SyncStatus, SyncTargetInfo, NoydbStore, AccessibleVault, ListAccessibleVaultsOptions, QueryAcrossOptions, QueryAcrossResult, TranslatorAuditEntry, WriteConflict, UserApiFactory, ActiveTier, FactorProofBundle, GateName, VaultPolicy } from './types.js';
3
3
  import type { SecretPolicy } from './validation.js';
4
4
  import { type CoordinationProvider } from '../port/by/default-provider.js';
5
5
  import type { Cover } from '../with-party/directory/cover/types.js';
@@ -502,6 +502,8 @@ export declare class Noydb {
502
502
  * @internal
503
503
  */
504
504
  get _store(): NoydbStore;
505
+ /** The default store this instance was opened with (#948). */
506
+ get store(): NoydbStore;
505
507
  /**
506
508
  * Currently-running multi-record transaction, or `null` outside
507
509
  * Phase 2. `Collection.dispatchDerivations` consults this so a
@@ -547,6 +549,13 @@ export declare class Noydb {
547
549
  _clearActiveTxContext(ctx: TxContext): void;
548
550
  /** Get sync status for a vault. */
549
551
  syncStatus(vault: string): SyncStatus;
552
+ /**
553
+ * Enumerate the sync targets wired for `vault` (#948) — the primary engine
554
+ * (keyed by vault name) plus any additional targets (keyed `vault::label`
555
+ * or `vault::role`). No preset name: a resolved `SyncPolicy` doesn't retain
556
+ * which preset (if any) produced it.
557
+ */
558
+ listSyncTargets(vault: string): SyncTargetInfo[];
550
559
  private getSyncEngine;
551
560
  _forEachSyncEngine(vault: string, fn: (engine: SyncEngine) => void): void;
552
561
  on<K extends keyof NoydbEventMap>(event: K, handler: (data: NoydbEventMap[K]) => void): void;
@@ -0,0 +1,45 @@
1
+ import type { PreparedPut } from './prepared-write.js';
2
+ import type { EncryptedEnvelope, NoydbStore, PutManyItemOptions, PutManyResult } from './types.js';
3
+ /** @internal Structural view of one executed op on a transaction context. */
4
+ interface BulkExecutedOp {
5
+ readonly op: {
6
+ readonly type: 'put' | 'delete';
7
+ readonly vaultName: string;
8
+ readonly collectionName: string;
9
+ readonly id: string;
10
+ };
11
+ readonly priorEnvelope: EncryptedEnvelope | null;
12
+ }
13
+ /** @internal Structural slice of `with-commit`'s `TxContext` this module drives. */
14
+ interface BulkTxContext {
15
+ readonly _executed: BulkExecutedOp[];
16
+ }
17
+ /** @internal The slice of `Collection` both branches drive. */
18
+ export interface PutManyAtomicHost<T> {
19
+ put(id: string, record: T): Promise<void>;
20
+ _preparePut(id: string, record: T): Promise<PreparedPut<T>>;
21
+ _finalizePut(prepared: PreparedPut<T>): Promise<void>;
22
+ _fireAtomicAfterWrite(opType: 'put', prepared: PreparedPut<T>): Promise<void>;
23
+ _assertWriteGates(): Promise<void>;
24
+ _txAtomicSafe(opType: 'put' | 'delete'): boolean;
25
+ _invalidateCacheEntry(id: string): Promise<void>;
26
+ }
27
+ /** @internal The owning collection's private coordinates + wiring. */
28
+ export interface PutManyAtomicContext<T> {
29
+ readonly host: PutManyAtomicHost<T>;
30
+ readonly store: NoydbStore;
31
+ readonly vault: string;
32
+ readonly name: string;
33
+ readonly derivationSource?: {
34
+ createTxContext(): BulkTxContext;
35
+ setActiveTxContext(ctx: BulkTxContext): void;
36
+ clearActiveTxContext(ctx: BulkTxContext): void;
37
+ getCollection(name: string): {
38
+ _invalidateCacheEntry(id: string): Promise<void>;
39
+ };
40
+ } | undefined;
41
+ }
42
+ type PutManyEntries<T> = ReadonlyArray<readonly [id: string, record: T, opts?: PutManyItemOptions]>;
43
+ /** @internal Atomic-mode implementation of `Collection.putMany`. */
44
+ export declare function runPutManyAtomic<T>(ctx: PutManyAtomicContext<T>, entries: PutManyEntries<T>): Promise<PutManyResult>;
45
+ export {};
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Secret-mode rules for `createNoydb` / keyring unlock — the option
3
+ * cross-checks and the per-mode secret resolution for the three
4
+ * {@link NoydbOptions.secretMode} values (`standard` / `managed` / `echo`).
5
+ *
6
+ * Extracted out of `kernel/noydb.ts` (which is under a line ceiling — see
7
+ * `check-architecture`'s `kernel-surface` rule) when echo mode was wired in
8
+ * (spec docs/superpowers/specs/2026-08-02-echo-secret-design.md, #940). The
9
+ * managed-mode rules and their exact messages moved verbatim; the echo rules
10
+ * are the addition.
11
+ *
12
+ * Nothing here is re-exported from a package barrel — it is kernel-internal.
13
+ *
14
+ * @module
15
+ */
16
+ import type { NoydbOptions, NoydbStore } from './types.js';
17
+ import type { EchoSecretParts } from './enclave/index.js';
18
+ /**
19
+ * Cross-check the secret-mode-related options at `createNoydb` time, before
20
+ * any store touch. Throws `ValidationError` on the first violation.
21
+ */
22
+ export declare function validateSecretModeOptions(options: NoydbOptions): void;
23
+ /**
24
+ * Resolve the secret that actually unlocks (or creates) `vault`'s keyring.
25
+ *
26
+ * Managed-secret mode resolves before falling into the normal load/create
27
+ * path: the first call mints + seals + persists, subsequent calls unseal
28
+ * what's there. The returned string takes the place of `options.secret` for
29
+ * the rest of the unlock (and is NOT persisted on the options).
30
+ *
31
+ * Standard and echo mode both hand back `options.secret` unchanged — a
32
+ * string for standard, an {@link EchoSecretParts} struct for echo; the KDF
33
+ * dispatch on that shape happens in `deriveKekForKeyring`.
34
+ */
35
+ export declare function resolveEffectiveSecret(options: NoydbOptions, store: NoydbStore, vault: string): Promise<string | EchoSecretParts | undefined>;
36
+ /**
37
+ * Build the `createOwnerKeyring` bag for a first-boot (or `onInvalidKey:
38
+ * 'reset'`) enrollment under the current secret mode.
39
+ *
40
+ * Managed mode generates 256-bit base64 strings that don't satisfy the
41
+ * human-secret strength rules (no spaces, no "words"), so it skips
42
+ * validation — the entropy floor is already 256 bits by construction. Echo
43
+ * mode does NOT skip it: the parts are human-chosen, so `validateSecret`
44
+ * applies exactly as it does in standard mode.
45
+ *
46
+ * The return type is inferred rather than annotated as
47
+ * `CreateOwnerKeyringOptions` — naming that type here would be a static
48
+ * spine→service import, which `port-layering` forbids even type-only. The
49
+ * shape is still checked: `noydb.ts` passes the result straight into
50
+ * `createOwnerKeyring`, so any drift fails typecheck at the call site.
51
+ */
52
+ export declare function ownerKeyringOptions(options: NoydbOptions, secret: string | EchoSecretParts): {
53
+ echoMaskHint?: string;
54
+ echoSecretPolicy?: import("./validation.js").EchoSecretPolicy;
55
+ deviceSeal?: import("../index.js").DeviceSealProvider;
56
+ userId: string;
57
+ secret: string | EchoSecretParts;
58
+ validate: boolean;
59
+ };
@@ -24,7 +24,7 @@
24
24
  */
25
25
  import type { StandardSchemaV1 } from './schema.js';
26
26
  import type { DeferredNumberingConfig } from '../with-commit/numbering/descriptor.js';
27
- import type { SyncPolicy, ReadinessState } from './sync-policy.js';
27
+ import type { SyncPolicy, ReadinessState, PushMode, PullMode } from './sync-policy.js';
28
28
  import type { BlobsStrategy } from '../port/with/blob-strategy.js';
29
29
  import type { ArchiveStrategy } from '../with-fork/archive/index.js';
30
30
  import type { IndexingStrategy } from '../with-lookup/indexing/strategy.js';
@@ -55,7 +55,7 @@ import type { SyncStrategy } from '../with-sync/strategy.js';
55
55
  import type { GuardStrategyAny } from '../with-audit/guards/types.js';
56
56
  import type { DerivationStrategy } from '../with-formula/derivations/types.js';
57
57
  import type { UnlockedKeyring } from '../with-party/team/keyring.js';
58
- import type { SecretPolicy } from './validation.js';
58
+ import type { SecretPolicy, EchoSecretPolicy } from './validation.js';
59
59
  import type { CoverSchema } from '../with-party/directory/cover/types.js';
60
60
  import type { MaterializedViewStrategy } from '../with-formula/materialized-views/types.js';
61
61
  import type { OverlayedViewStrategy } from '../with-formula/overlay-views/types.js';
@@ -65,7 +65,9 @@ import type { ObjectProjection } from '../with-shape/blobs/object-projection.js'
65
65
  import type { CoordinationProvider } from '../port/by/types.js';
66
66
  import type { ScriptWarning } from '../port/with/i18n-strategy.js';
67
67
  import type { ViaDescriptor } from './via/index.js';
68
- import type { EnclaveKey } from './enclave/index.js';
68
+ import type { EnclaveKey, EchoSecretParts } from './enclave/index.js';
69
+ import type { DeviceSealProvider } from '../port/with/device-seal-strategy.js';
70
+ export type { EchoSecretParts };
69
71
  /** Format version for encrypted record envelopes. */
70
72
  export declare const NOYDB_FORMAT_VERSION: 1;
71
73
  /** Format version for keyring files. */
@@ -869,6 +871,36 @@ export interface KeyringAuthenticatorWrappingDEKs extends KeyringAuthenticatorBa
869
871
  * dispatch is safe.
870
872
  */
871
873
  export type KeyringAuthenticator = KeyringAuthenticatorWrappingKEK | KeyringAuthenticatorWrappingDEKs;
874
+ /**
875
+ * Echo-secret (3-part ceremony) declaration on a keyring — spec
876
+ * docs/superpowers/specs/2026-08-02-echo-secret-design.md (#940).
877
+ * Optional / append-only: keyrings written before the extension (or
878
+ * using standard/managed modes) simply lack it.
879
+ */
880
+ export interface KeyringEchoBlock {
881
+ readonly v: 1;
882
+ /** Salt + AES-KW verifier gating the reveal on the typed prompt (600K PBKDF2). */
883
+ readonly prompt_salt: string;
884
+ readonly prompt_verifier: string;
885
+ /** Salt + AES-KW verifier for a TYPED echo (degraded path). */
886
+ readonly echo_salt: string;
887
+ readonly echo_verifier: string;
888
+ /** Hybrid reveal policy (spec decision 4). */
889
+ readonly reveal: {
890
+ readonly kind: 'portable';
891
+ readonly blob: string;
892
+ readonly iv: string;
893
+ readonly salt: string;
894
+ } | {
895
+ readonly kind: 'sealed';
896
+ readonly blob: string;
897
+ readonly provider_hint: string;
898
+ } | {
899
+ readonly kind: 'none';
900
+ };
901
+ /** Optional display-masking hint — pure player-UI concern. */
902
+ readonly mask_hint?: string;
903
+ }
872
904
  export interface KeyringFile {
873
905
  readonly _noydb_keyring: typeof NOYDB_KEYRING_VERSION;
874
906
  readonly user_id: string;
@@ -942,6 +974,11 @@ export interface KeyringFile {
942
974
  * highest tier they have DEKs for at grant time.
943
975
  */
944
976
  readonly clearance?: number;
977
+ /**
978
+ * Echo-secret (3-part ceremony) declaration. Absent for keyrings
979
+ * using standard/managed mode, or written before this extension.
980
+ */
981
+ readonly echo?: KeyringEchoBlock;
945
982
  }
946
983
  export interface VaultBackup {
947
984
  readonly _noydb_backup: typeof NOYDB_BACKUP_VERSION;
@@ -1287,6 +1324,23 @@ export interface SyncTarget {
1287
1324
  /** Human-readable label for DevTools and audit logs. */
1288
1325
  readonly label?: string;
1289
1326
  }
1327
+ /**
1328
+ * Introspection view of a wired sync target, returned by `Noydb.listSyncTargets()`
1329
+ * (#948). Deliberately omits any preset *name* — a resolved `SyncPolicy` doesn't
1330
+ * retain which preset (if any) it came from, so only its push/pull mode is surfaced.
1331
+ */
1332
+ export interface SyncTargetInfo {
1333
+ readonly label: string | undefined;
1334
+ readonly role: SyncTargetRole;
1335
+ readonly policy: {
1336
+ readonly push: {
1337
+ readonly mode: PushMode;
1338
+ };
1339
+ readonly pull: {
1340
+ readonly mode: PullMode;
1341
+ };
1342
+ } | undefined;
1343
+ }
1290
1344
  export interface ChangeEvent {
1291
1345
  readonly vault: string;
1292
1346
  readonly collection: string;
@@ -2503,8 +2557,13 @@ export interface NoydbOptions {
2503
2557
  readonly sync?: NoydbStore | SyncTarget | SyncTarget[];
2504
2558
  /** User identifier. */
2505
2559
  readonly user: string;
2506
- /** Secret for key derivation. Required unless encrypt is false or `getKeyring` is provided. */
2507
- readonly secret?: string;
2560
+ /**
2561
+ * Secret for key derivation. Required unless encrypt is false or
2562
+ * `getKeyring` is provided. A plain `string` for `'standard'` /
2563
+ * `'managed'` mode; an {@link EchoSecretParts} 3-part struct for
2564
+ * `'echo'` mode (spec docs/superpowers/specs/2026-08-02-echo-secret-design.md, #940).
2565
+ */
2566
+ readonly secret?: string | EchoSecretParts;
2508
2567
  /**
2509
2568
  * Optional callback that returns an unlocked keyring for a given vault.
2510
2569
  * Use this to plug in WebAuthn / OIDC / Shamir / any unlock path that
@@ -2555,10 +2614,13 @@ export interface NoydbOptions {
2555
2614
  * the provided `sealingKey`. The user never sees or types the
2556
2615
  * secret, defeating the $5-wrench attack. Mutually
2557
2616
  * exclusive with `secret` and `getKeyring`.
2617
+ * - `'echo'` — 3-part ceremony (prompt / echo / key). `secret`
2618
+ * takes an {@link EchoSecretParts} struct instead of a plain
2619
+ * string (spec docs/superpowers/specs/2026-08-02-echo-secret-design.md, #940).
2558
2620
  *
2559
2621
  * @see https://github.com/vLannaAi/noy-db-docs/blob/main/content/docs/services/session-tiers.md → Managed-secret mode
2560
2622
  */
2561
- readonly secretMode?: 'standard' | 'managed';
2623
+ readonly secretMode?: 'standard' | 'echo' | 'managed';
2562
2624
  /**
2563
2625
  * Provider that seals/unseals the auto-generated managed-mode
2564
2626
  * secret. Required when `secretMode === 'managed'`; ignored
@@ -2567,6 +2629,23 @@ export interface NoydbOptions {
2567
2629
  * `@noy-db/seal-libsecret`, `@noy-db/seal-aws-kms`, …).
2568
2630
  */
2569
2631
  readonly sealingKey?: SealingKeyProvider;
2632
+ /**
2633
+ * Device-local sealer for the echo reveal-blob. Echo mode only.
2634
+ * Absent ⇒ live keyrings enroll `reveal: 'portable'`; present ⇒
2635
+ * `sealed` (attacker-B resistance). Spec resolved question 4.
2636
+ */
2637
+ readonly deviceSeal?: DeviceSealProvider;
2638
+ /**
2639
+ * Echo enrollment only: optional display hint for the masked echo,
2640
+ * threaded to the owner keyring's `KeyringEchoBlock.mask_hint` (surfaced
2641
+ * later by `beginEchoUnlock`'s `maskHint`). Echo mode only — rejected
2642
+ * (`ValidationError`) when `secretMode` isn't `'echo'`.
2643
+ *
2644
+ * Counterpart of `RotateSecretInput.echoOptions.maskHint` /
2645
+ * `CreateOwnerKeyringOptions.echoMaskHint` for first-boot enrollment via
2646
+ * `createNoydb` instead of a later `rotateSecret`.
2647
+ */
2648
+ readonly echoMaskHint?: string;
2570
2649
  /** Required to use `profile: 'shamir'` recovery. Pass
2571
2650
  * `shamirRecoveryProvider()` from `@noy-db/on-shamir`. */
2572
2651
  readonly shamirRecovery?: ShamirRecoveryProvider;
@@ -2617,6 +2696,19 @@ export interface NoydbOptions {
2617
2696
  * back-compat; planned to flip to `true` in a future major release.
2618
2697
  */
2619
2698
  readonly validateSecret?: boolean;
2699
+ /**
2700
+ * Per-vault strength-policy knobs for the ECHO (3-part) secret's
2701
+ * prompt / combined floors, applied at first-time keyring creation
2702
+ * when `validateSecret` is on. Echo mode only — rejected
2703
+ * (`ValidationError`) when `secretMode` isn't `'echo'`.
2704
+ *
2705
+ * This is the parts-path counterpart of `SecretPolicy` (there is no
2706
+ * `secretPolicy` field on `NoydbOptions` itself — the standard/string
2707
+ * secret path has no per-`createNoydb` override point today; see
2708
+ * `RotateSecretInput.secretPolicy` / `RecoverSecretInput.secretPolicy`
2709
+ * for where the string-path pairing lives).
2710
+ */
2711
+ readonly echoSecretPolicy?: EchoSecretPolicy;
2620
2712
  /**
2621
2713
  * Vault-level policy gate document. When present, the hub
2622
2714
  * persists the merged policy at `_meta/policy` on first-time vault
@@ -3346,4 +3438,3 @@ export type IndexedOf<T, O> = O extends {
3346
3438
  export type MoneyOf<T, O> = O extends {
3347
3439
  money: infer M;
3348
3440
  } ? (M & keyof T & string) : never;
3349
- export {};
@@ -128,3 +128,36 @@ export declare function estimateEntropy(secret: string): number;
128
128
  * @internal
129
129
  */
130
130
  export declare function legacyAssertSecret(s: string): void;
131
+ /** Dedicated floors for the echo mode's three parts (spec resolved Q1/Q5). */
132
+ export interface EchoSecretPolicy {
133
+ /** Floor for the typed prompt — the brute-forceable-in-isolation part. */
134
+ readonly prompt?: SecretPolicy;
135
+ /** Policy for the combined parts (defaults to the standard whole-secret rules). */
136
+ readonly combined?: SecretPolicy;
137
+ }
138
+ export declare const DEFAULT_ECHO_PROMPT_MIN_WORDS = 3;
139
+ /**
140
+ * Default per-word character floor for echo-mode validation (prompt AND
141
+ * combined checks). Relaxed to 1 from the standard 3-char floor
142
+ * ({@link DEFAULT_MIN_WORD_LENGTH}) — echo secrets are natural-language
143
+ * sentences (spec #940's canonical example is Italian), and Romance
144
+ * languages are full of 2-letter function words ("mi", "da", "al") that
145
+ * the standard floor would otherwise reject even though the combined
146
+ * secret is plenty strong. Word-COUNT floors (prompt 3, combined 6) are
147
+ * unchanged — this only relaxes per-word length.
148
+ */
149
+ export declare const DEFAULT_ECHO_MIN_WORD_LENGTH = 1;
150
+ /** Validate a 3-part echo secret. Never throws. */
151
+ export declare function validateEchoSecret(parts: {
152
+ readonly prompt: string;
153
+ readonly echo: string;
154
+ readonly key: string;
155
+ }, opts?: EchoSecretPolicy): SecretValidationResult;
156
+ /** Throwing form of {@link validateEchoSecret}. */
157
+ export declare function assertStrongEchoSecret(parts: {
158
+ readonly prompt: string;
159
+ readonly echo: string;
160
+ readonly key: string;
161
+ }, opts?: EchoSecretPolicy & {
162
+ allowWeakSecret?: boolean;
163
+ }): void;
@@ -39,6 +39,7 @@ import type { GuardStrategyAny } from '../with-audit/guards/types.js';
39
39
  import type { ReadOnlyVaultFacade } from '../with-audit/guards/read-only-facade.js';
40
40
  import type { DerivationRegistry } from '../with-formula/derivations/registry.js';
41
41
  import type { DerivationStrategy } from '../with-formula/derivations/types.js';
42
+ import { type BehaviorSummary } from '../with-shape/introspection/behaviors.js';
42
43
  import type { JoinedHandle } from '../with-shape/satellites/types.js';
43
44
  import { type PeriodRecord, type ClosePeriodOptions, type OpenPeriodOptions } from '../with-audit/periods/index.js';
44
45
  import { type EnclaveKey } from './enclave/index.js';
@@ -401,7 +402,7 @@ export declare class Vault {
401
402
  *
402
403
  * Emits no ledger/event itself — its callers (#604's `freezePeriod`, #615's
403
404
  * `purgePeriodTargets`) own the audit record. The sweep body is shared via
404
- * {@link _purgeMarkersOn}, which #615 also aims at push-only sync targets.
405
+ * `purgeMarkersOn`, which #615 also aims at push-only sync targets.
405
406
  *
406
407
  * Purges the local adapter only. Markers already pushed to the vault's
407
408
  * push-only (`backup`/`archive`) sync targets are reclaimed by #615's
@@ -409,11 +410,6 @@ export declare class Vault {
409
410
  * them would re-open the resurrection window — the deferred half of #611).
410
411
  */
411
412
  _purgeDeleteMarkers(before: string, collections?: string[]): Promise<number>;
412
- /**
413
- * @internal #615. Sweep delete markers with `_ts < before` off ANY store
414
- * (local adapter or a push-only sync target). Returns the count removed.
415
- */
416
- private _purgeMarkersOn;
417
413
  /**
418
414
  * @internal #613. Relocate this closed period's in-window records (those
419
415
  * with `_ts < before`) from the hot store to the configured cold tier,
@@ -723,6 +719,15 @@ export declare class Vault {
723
719
  unrevokeAttestation(docId: string): Promise<void>;
724
720
  getRevokedDocIds(): Promise<string[]>;
725
721
  publishRevocationList(): Promise<RevocationList>;
722
+ /**
723
+ * @internal #943 — read-only access to this vault's persisted document
724
+ * signer, for pod export signing. Never mints and does NOT require the
725
+ * `withAttestation()` opt-in (role-agnostic, pure read): if no signer has
726
+ * ever been minted, resolves to `null` (unsigned pod) rather than throwing
727
+ * or minting one. Dynamic-imports `signer.js` (the S4 gate escape hatch —
728
+ * see `_ensureFenceCoordination` above) since it is a with-* service path.
729
+ */
730
+ _loadPodSigner(): Promise<import('../with-audit/attestation/signer.js').DocSigner | null>;
726
731
  private writeExportAudit;
727
732
  /**
728
733
  * Read-only accessor for the invoking keyring's export capability,
@@ -766,6 +771,20 @@ export declare class Vault {
766
771
  * cascade guard. See `with-shape/links/vault-facade.ts`.
767
772
  */
768
773
  enforceRefsOnDelete(collectionName: string, id: string): Promise<void>;
774
+ /**
775
+ * #922 — can a delete on `collectionName` trigger ANY cross-record work in
776
+ * `enforceRefsOnDelete` above? Unions ALL THREE of its cascade sources —
777
+ * lookup-ref edges (`graph.referencingEdgesOf`), classic inbound refs
778
+ * (`refRegistry.getInbound`), and managed link sets whose either endpoint
779
+ * is this collection. `Collection._txAtomicSafe('delete')` consults this
780
+ * instead of the pre-#922 blanket enforcer-presence check: `_prepareDelete`
781
+ * runs those cascades DURING prepare (not abortable), so a delete may take
782
+ * the atomic tx path only when all three sources are provably absent.
783
+ * Registry state only — no store reads, safe to call at commit time.
784
+ *
785
+ * @internal
786
+ */
787
+ _deleteCascadesPossible(collectionName: string): boolean;
769
788
  /**
770
789
  * Look up the `RefDescriptor` the left collection declared for a
771
790
  * given field name. Returns `null` when the field has no ref
@@ -967,6 +986,13 @@ export declare class Vault {
967
986
  * vaults with no overlays registered.
968
987
  */
969
988
  _getOverlayedViewRegistry(): OverlayedViewRegistry | null;
989
+ /**
990
+ * Read-only enumeration of the five behavior registries — guards,
991
+ * derivations, materialized views, overlays, satellites — each entry
992
+ * carrying its name and the serializable half of its spec (never a
993
+ * function body). @see with-shape/introspection/behaviors.ts
994
+ */
995
+ listBehaviors(): BehaviorSummary;
970
996
  /** @internal — ctx for `putDerivedOutput`'s frozen-period skip+audit (#638 Task 5). */
971
997
  private _dispatchCtx;
972
998
  /**
@@ -3,7 +3,7 @@ import {
3
3
  LedgerStore,
4
4
  applyPatch,
5
5
  computePatch
6
- } from "./chunk-YGK2HMLR.js";
6
+ } from "./chunk-ZK4CO2KZ.js";
7
7
  import {
8
8
  LEDGER_COLLECTION,
9
9
  LEDGER_DELTAS_COLLECTION
@@ -15,16 +15,16 @@ import {
15
15
  paddedIndex,
16
16
  parseIndex,
17
17
  sha256Hex
18
- } from "./chunk-DQZXPGGZ.js";
19
- import "./chunk-SU6SGWXM.js";
20
- import "./chunk-EFJAAFBW.js";
21
- import "./chunk-35NMVJ7I.js";
22
- import "./chunk-NFZGZ4AK.js";
23
- import "./chunk-QJNCB5SK.js";
18
+ } from "./chunk-24UICKTB.js";
19
+ import "./chunk-FY343IZR.js";
20
+ import "./chunk-NQRJ5AJO.js";
21
+ import "./chunk-HXGUIPQB.js";
22
+ import "./chunk-AR2JDFAE.js";
23
+ import "./chunk-747LRSOO.js";
24
24
  import "./chunk-LP7BEXCT.js";
25
- import "./chunk-AKKRXT23.js";
26
- import "./chunk-77AEMXFA.js";
27
- import "./chunk-QZWTRENR.js";
25
+ import "./chunk-VCETL77O.js";
26
+ import "./chunk-24ZLWWEO.js";
27
+ import "./chunk-HNGSV2YC.js";
28
28
  import "./chunk-PZ5AY32C.js";
29
29
  export {
30
30
  LEDGER_COLLECTION,
@@ -39,4 +39,4 @@ export {
39
39
  parseIndex,
40
40
  sha256Hex
41
41
  };
42
- //# sourceMappingURL=ledger-XE7JF2I2.js.map
42
+ //# sourceMappingURL=ledger-DONWFC5M.js.map