@graphrefly/graphrefly 0.45.0 → 0.46.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 (714) hide show
  1. package/README.md +1 -2
  2. package/dist/_internal-B23BagFd.d.cts +33 -0
  3. package/dist/_internal-B23BagFd.d.ts +33 -0
  4. package/dist/adaptive-rate-limiter-Dch_xYIi.d.cts +111 -0
  5. package/dist/adaptive-rate-limiter-Dch_xYIi.d.ts +111 -0
  6. package/dist/agents-C0Ji9ldU.d.cts +629 -0
  7. package/dist/agents-C9zexT7I.d.ts +629 -0
  8. package/dist/audit-BAXb3VOg.d.ts +246 -0
  9. package/dist/audit-C_bPfkqS.d.cts +246 -0
  10. package/dist/backoff-7KIK3WQW.js +24 -0
  11. package/dist/backoff-7KIK3WQW.js.map +1 -0
  12. package/dist/backoff-Bnb9OoPh.d.cts +6 -0
  13. package/dist/backoff-Bnb9OoPh.d.ts +6 -0
  14. package/dist/base/composition/index.cjs +811 -0
  15. package/dist/base/composition/index.cjs.map +1 -0
  16. package/dist/base/composition/index.d.cts +469 -0
  17. package/dist/base/composition/index.d.ts +469 -0
  18. package/dist/base/composition/index.js +40 -0
  19. package/dist/base/composition/index.js.map +1 -0
  20. package/dist/base/index.cjs +6336 -0
  21. package/dist/base/index.cjs.map +1 -0
  22. package/dist/base/index.d.cts +22 -0
  23. package/dist/base/index.d.ts +22 -0
  24. package/dist/base/index.js +259 -0
  25. package/dist/base/index.js.map +1 -0
  26. package/dist/base/io/index.cjs +3270 -0
  27. package/dist/base/io/index.cjs.map +1 -0
  28. package/dist/base/io/index.d.cts +2245 -0
  29. package/dist/base/io/index.d.ts +2245 -0
  30. package/dist/base/io/index.js +117 -0
  31. package/dist/base/io/index.js.map +1 -0
  32. package/dist/base/meta/index.cjs +43 -0
  33. package/dist/base/meta/index.cjs.map +1 -0
  34. package/dist/base/meta/index.d.cts +45 -0
  35. package/dist/base/meta/index.d.ts +45 -0
  36. package/dist/base/meta/index.js +13 -0
  37. package/dist/base/meta/index.js.map +1 -0
  38. package/dist/base/mutation/index.cjs +200 -0
  39. package/dist/base/mutation/index.cjs.map +1 -0
  40. package/dist/base/mutation/index.d.cts +177 -0
  41. package/dist/base/mutation/index.d.ts +177 -0
  42. package/dist/base/mutation/index.js +22 -0
  43. package/dist/base/mutation/index.js.map +1 -0
  44. package/dist/base/render/index.cjs +1120 -0
  45. package/dist/base/render/index.cjs.map +1 -0
  46. package/dist/base/render/index.d.cts +227 -0
  47. package/dist/base/render/index.d.ts +227 -0
  48. package/dist/base/render/index.js +24 -0
  49. package/dist/base/render/index.js.map +1 -0
  50. package/dist/base/sources/browser/index.cjs +172 -0
  51. package/dist/base/sources/browser/index.cjs.map +1 -0
  52. package/dist/base/sources/browser/index.d.cts +84 -0
  53. package/dist/base/sources/browser/index.d.ts +84 -0
  54. package/dist/base/sources/browser/index.js +151 -0
  55. package/dist/base/sources/browser/index.js.map +1 -0
  56. package/dist/base/sources/event/index.cjs +98 -0
  57. package/dist/base/sources/event/index.cjs.map +1 -0
  58. package/dist/base/sources/event/index.d.cts +91 -0
  59. package/dist/base/sources/event/index.d.ts +91 -0
  60. package/dist/base/sources/event/index.js +13 -0
  61. package/dist/base/sources/event/index.js.map +1 -0
  62. package/dist/base/sources/index.cjs +755 -0
  63. package/dist/base/sources/index.cjs.map +1 -0
  64. package/dist/base/sources/index.d.cts +357 -0
  65. package/dist/base/sources/index.d.ts +357 -0
  66. package/dist/base/sources/index.js +42 -0
  67. package/dist/base/sources/index.js.map +1 -0
  68. package/dist/base/sources/node/index.cjs +320 -0
  69. package/dist/base/sources/node/index.cjs.map +1 -0
  70. package/dist/base/sources/node/index.d.cts +185 -0
  71. package/dist/base/sources/node/index.d.ts +185 -0
  72. package/dist/base/sources/node/index.js +306 -0
  73. package/dist/base/sources/node/index.js.map +1 -0
  74. package/dist/base/utils/index.cjs +37 -0
  75. package/dist/base/utils/index.cjs.map +1 -0
  76. package/dist/base/utils/index.d.cts +37 -0
  77. package/dist/base/utils/index.d.ts +37 -0
  78. package/dist/base/utils/index.js +11 -0
  79. package/dist/base/utils/index.js.map +1 -0
  80. package/dist/base/worker/index.cjs +548 -0
  81. package/dist/base/worker/index.cjs.map +1 -0
  82. package/dist/base/worker/index.d.cts +207 -0
  83. package/dist/base/worker/index.d.ts +207 -0
  84. package/dist/base/worker/index.js +20 -0
  85. package/dist/base/worker/index.js.map +1 -0
  86. package/dist/breaker-C9skL3d8.d.ts +175 -0
  87. package/dist/breaker-ugSdq54q.d.cts +175 -0
  88. package/dist/cascading-CSSbKGrJ.d.ts +199 -0
  89. package/dist/cascading-baGkiihI.d.cts +199 -0
  90. package/dist/chunk-255UCBG4.js +58 -0
  91. package/dist/chunk-255UCBG4.js.map +1 -0
  92. package/dist/chunk-2LO3EL4W.js +1 -0
  93. package/dist/chunk-2LO3EL4W.js.map +1 -0
  94. package/dist/chunk-2OB3CEJS.js +1065 -0
  95. package/dist/chunk-2OB3CEJS.js.map +1 -0
  96. package/dist/chunk-36NMM65U.js +144 -0
  97. package/dist/chunk-36NMM65U.js.map +1 -0
  98. package/dist/chunk-3CEXCBN6.js +1 -0
  99. package/dist/chunk-3CEXCBN6.js.map +1 -0
  100. package/dist/chunk-3MUSLI6E.js +105 -0
  101. package/dist/chunk-3MUSLI6E.js.map +1 -0
  102. package/dist/chunk-3PSLNJDU.js +884 -0
  103. package/dist/chunk-3PSLNJDU.js.map +1 -0
  104. package/dist/chunk-3QZY5BI7.js +92 -0
  105. package/dist/chunk-3QZY5BI7.js.map +1 -0
  106. package/dist/chunk-42FQ27MQ.js +594 -0
  107. package/dist/chunk-42FQ27MQ.js.map +1 -0
  108. package/dist/chunk-4GYMCUDZ.js +1085 -0
  109. package/dist/chunk-4GYMCUDZ.js.map +1 -0
  110. package/dist/chunk-4S53H2KR.js +382 -0
  111. package/dist/chunk-4S53H2KR.js.map +1 -0
  112. package/dist/chunk-4XCHZRUJ.js +128 -0
  113. package/dist/chunk-4XCHZRUJ.js.map +1 -0
  114. package/dist/chunk-5THCXDWY.js +725 -0
  115. package/dist/chunk-5THCXDWY.js.map +1 -0
  116. package/dist/chunk-6XZYT4SW.js +256 -0
  117. package/dist/chunk-6XZYT4SW.js.map +1 -0
  118. package/dist/chunk-7EGRP2VX.js +76 -0
  119. package/dist/chunk-7EGRP2VX.js.map +1 -0
  120. package/dist/chunk-A7KV5UK4.js +150 -0
  121. package/dist/chunk-A7KV5UK4.js.map +1 -0
  122. package/dist/chunk-APY2SS5X.js +156 -0
  123. package/dist/chunk-APY2SS5X.js.map +1 -0
  124. package/dist/chunk-AZDQPQ3V.js +66 -0
  125. package/dist/chunk-AZDQPQ3V.js.map +1 -0
  126. package/dist/chunk-BU3SEFA5.js +90 -0
  127. package/dist/chunk-BU3SEFA5.js.map +1 -0
  128. package/dist/chunk-BXGZFGZ4.js +189 -0
  129. package/dist/chunk-BXGZFGZ4.js.map +1 -0
  130. package/dist/chunk-CGHORL6G.js +579 -0
  131. package/dist/chunk-CGHORL6G.js.map +1 -0
  132. package/dist/chunk-CXANAIZU.js +530 -0
  133. package/dist/chunk-CXANAIZU.js.map +1 -0
  134. package/dist/chunk-CZQHCKKG.js +1 -0
  135. package/dist/chunk-CZQHCKKG.js.map +1 -0
  136. package/dist/chunk-DKNHAICT.js +133 -0
  137. package/dist/chunk-DKNHAICT.js.map +1 -0
  138. package/dist/chunk-DM4OMPWK.js +584 -0
  139. package/dist/chunk-DM4OMPWK.js.map +1 -0
  140. package/dist/chunk-DMSNO6ZB.js +452 -0
  141. package/dist/chunk-DMSNO6ZB.js.map +1 -0
  142. package/dist/chunk-E5OZPDIW.js +229 -0
  143. package/dist/chunk-E5OZPDIW.js.map +1 -0
  144. package/dist/chunk-EVYY4X5A.js +509 -0
  145. package/dist/chunk-EVYY4X5A.js.map +1 -0
  146. package/dist/chunk-FDFD67UO.js +1 -0
  147. package/dist/chunk-FDFD67UO.js.map +1 -0
  148. package/dist/chunk-FMPF42Q4.js +13 -0
  149. package/dist/chunk-FMPF42Q4.js.map +1 -0
  150. package/dist/chunk-FR6RGA3B.js +1277 -0
  151. package/dist/chunk-FR6RGA3B.js.map +1 -0
  152. package/dist/chunk-FW23JYNQ.js +454 -0
  153. package/dist/chunk-FW23JYNQ.js.map +1 -0
  154. package/dist/chunk-GBCENOLN.js +1575 -0
  155. package/dist/chunk-GBCENOLN.js.map +1 -0
  156. package/dist/chunk-HL7HUJIX.js +1 -0
  157. package/dist/chunk-HL7HUJIX.js.map +1 -0
  158. package/dist/chunk-HULCUY35.js +2508 -0
  159. package/dist/chunk-HULCUY35.js.map +1 -0
  160. package/dist/chunk-IHTWQEDR.js +169 -0
  161. package/dist/chunk-IHTWQEDR.js.map +1 -0
  162. package/dist/chunk-IJRR6YAI.js +128 -0
  163. package/dist/chunk-IJRR6YAI.js.map +1 -0
  164. package/dist/chunk-JGFRAFDL.js +221 -0
  165. package/dist/chunk-JGFRAFDL.js.map +1 -0
  166. package/dist/chunk-KIIXR252.js +211 -0
  167. package/dist/chunk-KIIXR252.js.map +1 -0
  168. package/dist/chunk-KN3H5CNT.js +11 -0
  169. package/dist/chunk-KN3H5CNT.js.map +1 -0
  170. package/dist/chunk-KPG3DGLA.js +1 -0
  171. package/dist/chunk-KPG3DGLA.js.map +1 -0
  172. package/dist/chunk-KRNQ6RGQ.js +1 -0
  173. package/dist/chunk-KRNQ6RGQ.js.map +1 -0
  174. package/dist/chunk-LBAJK24K.js +1071 -0
  175. package/dist/chunk-LBAJK24K.js.map +1 -0
  176. package/dist/chunk-MLTPJMH6.js +417 -0
  177. package/dist/chunk-MLTPJMH6.js.map +1 -0
  178. package/dist/chunk-N3SZ7BMH.js +95 -0
  179. package/dist/chunk-N3SZ7BMH.js.map +1 -0
  180. package/dist/chunk-NDUD3IMO.js +540 -0
  181. package/dist/chunk-NDUD3IMO.js.map +1 -0
  182. package/dist/chunk-NY2PYHNC.js +873 -0
  183. package/dist/chunk-NY2PYHNC.js.map +1 -0
  184. package/dist/chunk-O3MT7DYI.js +225 -0
  185. package/dist/chunk-O3MT7DYI.js.map +1 -0
  186. package/dist/chunk-OCUDSN63.js +2386 -0
  187. package/dist/chunk-OCUDSN63.js.map +1 -0
  188. package/dist/chunk-OIWU3NYV.js +199 -0
  189. package/dist/chunk-OIWU3NYV.js.map +1 -0
  190. package/dist/chunk-OO5BM6CJ.js +1153 -0
  191. package/dist/chunk-OO5BM6CJ.js.map +1 -0
  192. package/dist/chunk-OQUIJT7A.js +1 -0
  193. package/dist/chunk-OQUIJT7A.js.map +1 -0
  194. package/dist/chunk-P5LBT622.js +105 -0
  195. package/dist/chunk-P5LBT622.js.map +1 -0
  196. package/dist/chunk-PKGQG5QQ.js +519 -0
  197. package/dist/chunk-PKGQG5QQ.js.map +1 -0
  198. package/dist/chunk-PKPO3JTZ.js +561 -0
  199. package/dist/chunk-PKPO3JTZ.js.map +1 -0
  200. package/dist/chunk-PL5UDIQ5.js +118 -0
  201. package/dist/chunk-PL5UDIQ5.js.map +1 -0
  202. package/dist/chunk-PZWISPIQ.js +432 -0
  203. package/dist/chunk-PZWISPIQ.js.map +1 -0
  204. package/dist/chunk-Q3EYOCZB.js +510 -0
  205. package/dist/chunk-Q3EYOCZB.js.map +1 -0
  206. package/dist/chunk-QMBYUVRL.js +15 -0
  207. package/dist/chunk-QMBYUVRL.js.map +1 -0
  208. package/dist/chunk-RAGGHLCV.js +200 -0
  209. package/dist/chunk-RAGGHLCV.js.map +1 -0
  210. package/dist/chunk-RGL53X5G.js +574 -0
  211. package/dist/chunk-RGL53X5G.js.map +1 -0
  212. package/dist/chunk-RJOG4IJU.js +1039 -0
  213. package/dist/chunk-RJOG4IJU.js.map +1 -0
  214. package/dist/chunk-SOOKUYVM.js +403 -0
  215. package/dist/chunk-SOOKUYVM.js.map +1 -0
  216. package/dist/chunk-T5BN5KG7.js +1 -0
  217. package/dist/chunk-T5BN5KG7.js.map +1 -0
  218. package/dist/chunk-TP7244Y6.js +207 -0
  219. package/dist/chunk-TP7244Y6.js.map +1 -0
  220. package/dist/chunk-TSBFTJKM.js +57 -0
  221. package/dist/chunk-TSBFTJKM.js.map +1 -0
  222. package/dist/chunk-URQ2CBBF.js +143 -0
  223. package/dist/chunk-URQ2CBBF.js.map +1 -0
  224. package/dist/chunk-W2BOPXTI.js +1 -0
  225. package/dist/chunk-W2BOPXTI.js.map +1 -0
  226. package/dist/chunk-WKSWLSCX.js +207 -0
  227. package/dist/chunk-WKSWLSCX.js.map +1 -0
  228. package/dist/chunk-Y52CS6YA.js +88 -0
  229. package/dist/chunk-Y52CS6YA.js.map +1 -0
  230. package/dist/chunk-YCBUWK77.js +92 -0
  231. package/dist/chunk-YCBUWK77.js.map +1 -0
  232. package/dist/chunk-YJ4U2D2C.js +314 -0
  233. package/dist/chunk-YJ4U2D2C.js.map +1 -0
  234. package/dist/chunk-Z4YXAUDN.js +239 -0
  235. package/dist/chunk-Z4YXAUDN.js.map +1 -0
  236. package/dist/chunk-Z6EGP5D7.js +92 -0
  237. package/dist/chunk-Z6EGP5D7.js.map +1 -0
  238. package/dist/compat/index.cjs +3083 -2
  239. package/dist/compat/index.cjs.map +1 -1
  240. package/dist/compat/index.d.cts +116 -1
  241. package/dist/compat/index.d.ts +116 -1
  242. package/dist/compat/index.js +175 -2
  243. package/dist/compat/index.js.map +1 -1
  244. package/dist/compat/jotai/index.cjs +130 -2
  245. package/dist/compat/jotai/index.cjs.map +1 -1
  246. package/dist/compat/jotai/index.d.cts +2 -1
  247. package/dist/compat/jotai/index.d.ts +2 -1
  248. package/dist/compat/jotai/index.js +7 -2
  249. package/dist/compat/jotai/index.js.map +1 -1
  250. package/dist/compat/nanostores/index.cjs +186 -2
  251. package/dist/compat/nanostores/index.cjs.map +1 -1
  252. package/dist/compat/nanostores/index.d.cts +2 -1
  253. package/dist/compat/nanostores/index.d.ts +2 -1
  254. package/dist/compat/nanostores/index.js +21 -2
  255. package/dist/compat/nanostores/index.js.map +1 -1
  256. package/dist/compat/nestjs/index.cjs +2224 -2
  257. package/dist/compat/nestjs/index.cjs.map +1 -1
  258. package/dist/compat/nestjs/index.d.cts +10 -1
  259. package/dist/compat/nestjs/index.d.ts +10 -1
  260. package/dist/compat/nestjs/index.js +77 -2
  261. package/dist/compat/nestjs/index.js.map +1 -1
  262. package/dist/compat/react/index.cjs +95 -2
  263. package/dist/compat/react/index.cjs.map +1 -1
  264. package/dist/compat/react/index.d.cts +2 -1
  265. package/dist/compat/react/index.d.ts +2 -1
  266. package/dist/compat/react/index.js +11 -2
  267. package/dist/compat/react/index.js.map +1 -1
  268. package/dist/compat/solid/index.cjs +82 -2
  269. package/dist/compat/solid/index.cjs.map +1 -1
  270. package/dist/compat/solid/index.d.cts +2 -1
  271. package/dist/compat/solid/index.d.ts +2 -1
  272. package/dist/compat/solid/index.js +11 -2
  273. package/dist/compat/solid/index.js.map +1 -1
  274. package/dist/compat/svelte/index.cjs +85 -2
  275. package/dist/compat/svelte/index.cjs.map +1 -1
  276. package/dist/compat/svelte/index.d.cts +2 -1
  277. package/dist/compat/svelte/index.d.ts +2 -1
  278. package/dist/compat/svelte/index.js +11 -2
  279. package/dist/compat/svelte/index.js.map +1 -1
  280. package/dist/compat/vue/index.cjs +100 -2
  281. package/dist/compat/vue/index.cjs.map +1 -1
  282. package/dist/compat/vue/index.d.cts +3 -1
  283. package/dist/compat/vue/index.d.ts +3 -1
  284. package/dist/compat/vue/index.js +11 -2
  285. package/dist/compat/vue/index.js.map +1 -1
  286. package/dist/compat/zustand/index.cjs +50 -2
  287. package/dist/compat/zustand/index.cjs.map +1 -1
  288. package/dist/compat/zustand/index.d.cts +2 -1
  289. package/dist/compat/zustand/index.d.ts +2 -1
  290. package/dist/compat/zustand/index.js +7 -2
  291. package/dist/compat/zustand/index.js.map +1 -1
  292. package/dist/distill-De6Rnn15.d.cts +48 -0
  293. package/dist/distill-De6Rnn15.d.ts +48 -0
  294. package/dist/external-register-CWyroXb_.d.cts +138 -0
  295. package/dist/external-register-CWyroXb_.d.ts +138 -0
  296. package/dist/fallback-Bx46zqky.d.cts +243 -0
  297. package/dist/fallback-pIWW8A2d.d.ts +243 -0
  298. package/dist/guarded-execution-BcdtxeBk.d.ts +207 -0
  299. package/dist/guarded-execution-C-3hnP6A.d.cts +207 -0
  300. package/dist/index-5SU_O78r.d.cts +754 -0
  301. package/dist/index-B6pxYJzO.d.cts +36 -0
  302. package/dist/index-B6pxYJzO.d.ts +36 -0
  303. package/dist/index-BFsng6v1.d.cts +44 -0
  304. package/dist/index-BFsng6v1.d.ts +44 -0
  305. package/dist/index-Bg-LwEt-.d.cts +45 -0
  306. package/dist/index-Bg-LwEt-.d.ts +45 -0
  307. package/dist/index-Brp888t0.d.cts +127 -0
  308. package/dist/index-Brp888t0.d.ts +127 -0
  309. package/dist/index-CDfk6jHN.d.cts +37 -0
  310. package/dist/index-CDfk6jHN.d.ts +37 -0
  311. package/dist/index-CEXCtYYJ.d.ts +754 -0
  312. package/dist/index-DLAxYaN5.d.cts +169 -0
  313. package/dist/index-DLAxYaN5.d.ts +169 -0
  314. package/dist/index-DeWbQzMe.d.cts +34 -0
  315. package/dist/index-DeWbQzMe.d.ts +34 -0
  316. package/dist/index-dX9IzPqj.d.cts +86 -0
  317. package/dist/index-dX9IzPqj.d.ts +86 -0
  318. package/dist/index.cjs +25950 -0
  319. package/dist/index.cjs.map +1 -1
  320. package/dist/index.d.cts +56 -42
  321. package/dist/index.d.ts +56 -42
  322. package/dist/index.js +849 -0
  323. package/dist/index.js.map +1 -1
  324. package/dist/layout-types-B5aiHYgk.d.cts +72 -0
  325. package/dist/layout-types-B5aiHYgk.d.ts +72 -0
  326. package/dist/memory-composers-BryDrRBX.d.cts +529 -0
  327. package/dist/memory-composers-CVQqPYEV.d.ts +529 -0
  328. package/dist/observable-BXQoW1P-.d.cts +36 -0
  329. package/dist/observable-BXQoW1P-.d.ts +36 -0
  330. package/dist/pipeline-graph-Ce47CB6Y.d.cts +145 -0
  331. package/dist/pipeline-graph-DXCwY9vG.d.ts +145 -0
  332. package/dist/presets/ai/index.cjs +4377 -0
  333. package/dist/presets/ai/index.cjs.map +1 -0
  334. package/dist/presets/ai/index.d.cts +98 -0
  335. package/dist/presets/ai/index.d.ts +98 -0
  336. package/dist/presets/ai/index.js +54 -0
  337. package/dist/presets/ai/index.js.map +1 -0
  338. package/dist/presets/harness/index.cjs +5929 -0
  339. package/dist/presets/harness/index.cjs.map +1 -0
  340. package/dist/presets/harness/index.d.cts +566 -0
  341. package/dist/presets/harness/index.d.ts +566 -0
  342. package/dist/presets/harness/index.js +71 -0
  343. package/dist/presets/harness/index.js.map +1 -0
  344. package/dist/presets/index.cjs +9782 -0
  345. package/dist/presets/index.cjs.map +1 -0
  346. package/dist/presets/index.d.cts +28 -0
  347. package/dist/presets/index.d.ts +28 -0
  348. package/dist/presets/index.js +129 -0
  349. package/dist/presets/index.js.map +1 -0
  350. package/dist/presets/inspect/index.cjs +1087 -0
  351. package/dist/presets/inspect/index.cjs.map +1 -0
  352. package/dist/presets/inspect/index.d.cts +172 -0
  353. package/dist/presets/inspect/index.d.ts +172 -0
  354. package/dist/presets/inspect/index.js +21 -0
  355. package/dist/presets/inspect/index.js.map +1 -0
  356. package/dist/presets/resilience/index.cjs +1593 -0
  357. package/dist/presets/resilience/index.cjs.map +1 -0
  358. package/dist/presets/resilience/index.d.cts +205 -0
  359. package/dist/presets/resilience/index.d.ts +205 -0
  360. package/dist/presets/resilience/index.js +18 -0
  361. package/dist/presets/resilience/index.js.map +1 -0
  362. package/dist/rate-limiter-CEALq4N1.d.ts +559 -0
  363. package/dist/rate-limiter-DpVbSYdH.d.cts +559 -0
  364. package/dist/reactive-layout-fswlBUvX.d.cts +195 -0
  365. package/dist/reactive-layout-fswlBUvX.d.ts +195 -0
  366. package/dist/retry-BDbRZ_gx.d.ts +125 -0
  367. package/dist/retry-DWuhjvsA.d.cts +125 -0
  368. package/dist/solutions/index.cjs +8200 -0
  369. package/dist/solutions/index.cjs.map +1 -0
  370. package/dist/solutions/index.d.cts +23 -0
  371. package/dist/solutions/index.d.ts +23 -0
  372. package/dist/solutions/index.js +55 -0
  373. package/dist/solutions/index.js.map +1 -0
  374. package/dist/spawnable-5mDY501F.d.cts +746 -0
  375. package/dist/spawnable-D3lR0oQu.d.ts +746 -0
  376. package/dist/status-U-rUI79b.d.cts +84 -0
  377. package/dist/status-U-rUI79b.d.ts +84 -0
  378. package/dist/timeout-U5O4ESK3.js +12 -0
  379. package/dist/timeout-U5O4ESK3.js.map +1 -0
  380. package/dist/types-BB5Lw-pB.d.cts +442 -0
  381. package/dist/types-BB5Lw-pB.d.ts +442 -0
  382. package/dist/types-CJWIMJiZ.d.ts +548 -0
  383. package/dist/types-vCq7ShIm.d.cts +548 -0
  384. package/dist/utils/ai/browser.cjs +2169 -0
  385. package/dist/utils/ai/browser.cjs.map +1 -0
  386. package/dist/utils/ai/browser.d.cts +129 -0
  387. package/dist/utils/ai/browser.d.ts +129 -0
  388. package/dist/utils/ai/browser.js +255 -0
  389. package/dist/utils/ai/browser.js.map +1 -0
  390. package/dist/utils/ai/index.cjs +8468 -0
  391. package/dist/utils/ai/index.cjs.map +1 -0
  392. package/dist/utils/ai/index.d.cts +1777 -0
  393. package/dist/utils/ai/index.d.ts +1777 -0
  394. package/dist/utils/ai/index.js +173 -0
  395. package/dist/utils/ai/index.js.map +1 -0
  396. package/dist/utils/ai/node.cjs +648 -0
  397. package/dist/utils/ai/node.cjs.map +1 -0
  398. package/dist/utils/ai/node.d.cts +57 -0
  399. package/dist/utils/ai/node.d.ts +57 -0
  400. package/dist/utils/ai/node.js +84 -0
  401. package/dist/utils/ai/node.js.map +1 -0
  402. package/dist/utils/cqrs/index.cjs +1036 -0
  403. package/dist/utils/cqrs/index.cjs.map +1 -0
  404. package/dist/utils/cqrs/index.d.cts +438 -0
  405. package/dist/utils/cqrs/index.d.ts +438 -0
  406. package/dist/utils/cqrs/index.js +18 -0
  407. package/dist/utils/cqrs/index.js.map +1 -0
  408. package/dist/utils/demo-shell/index.cjs +865 -0
  409. package/dist/utils/demo-shell/index.cjs.map +1 -0
  410. package/dist/utils/demo-shell/index.d.cts +90 -0
  411. package/dist/utils/demo-shell/index.d.ts +90 -0
  412. package/dist/utils/demo-shell/index.js +13 -0
  413. package/dist/utils/demo-shell/index.js.map +1 -0
  414. package/dist/utils/domain-templates/index.cjs +732 -0
  415. package/dist/utils/domain-templates/index.cjs.map +1 -0
  416. package/dist/utils/domain-templates/index.d.cts +214 -0
  417. package/dist/utils/domain-templates/index.d.ts +214 -0
  418. package/dist/utils/domain-templates/index.js +17 -0
  419. package/dist/utils/domain-templates/index.js.map +1 -0
  420. package/dist/utils/graphspec/index.cjs +1174 -0
  421. package/dist/utils/graphspec/index.cjs.map +1 -0
  422. package/dist/utils/graphspec/index.d.cts +449 -0
  423. package/dist/utils/graphspec/index.d.ts +449 -0
  424. package/dist/utils/graphspec/index.js +35 -0
  425. package/dist/utils/graphspec/index.js.map +1 -0
  426. package/dist/utils/harness/index.cjs +656 -0
  427. package/dist/utils/harness/index.cjs.map +1 -0
  428. package/dist/utils/harness/index.d.cts +542 -0
  429. package/dist/utils/harness/index.d.ts +542 -0
  430. package/dist/utils/harness/index.js +56 -0
  431. package/dist/utils/harness/index.js.map +1 -0
  432. package/dist/utils/index.cjs +17609 -0
  433. package/dist/utils/index.cjs.map +1 -0
  434. package/dist/utils/index.d.cts +96 -0
  435. package/dist/utils/index.d.ts +96 -0
  436. package/dist/utils/index.js +514 -0
  437. package/dist/utils/index.js.map +1 -0
  438. package/dist/utils/inspect/index.cjs +807 -0
  439. package/dist/utils/inspect/index.cjs.map +1 -0
  440. package/dist/utils/inspect/index.d.cts +123 -0
  441. package/dist/utils/inspect/index.d.ts +123 -0
  442. package/dist/utils/inspect/index.js +30 -0
  443. package/dist/utils/inspect/index.js.map +1 -0
  444. package/dist/utils/job-queue/index.cjs +717 -0
  445. package/dist/utils/job-queue/index.cjs.map +1 -0
  446. package/dist/utils/job-queue/index.d.cts +200 -0
  447. package/dist/utils/job-queue/index.d.ts +200 -0
  448. package/dist/utils/job-queue/index.js +18 -0
  449. package/dist/utils/job-queue/index.js.map +1 -0
  450. package/dist/utils/memory/index.cjs +1451 -0
  451. package/dist/utils/memory/index.cjs.map +1 -0
  452. package/dist/utils/memory/index.d.cts +582 -0
  453. package/dist/utils/memory/index.d.ts +582 -0
  454. package/dist/utils/memory/index.js +19 -0
  455. package/dist/utils/memory/index.js.map +1 -0
  456. package/dist/utils/messaging/index.cjs +666 -0
  457. package/dist/utils/messaging/index.cjs.map +1 -0
  458. package/dist/utils/messaging/index.d.cts +562 -0
  459. package/dist/utils/messaging/index.d.ts +562 -0
  460. package/dist/utils/messaging/index.js +50 -0
  461. package/dist/utils/messaging/index.js.map +1 -0
  462. package/dist/utils/orchestration/index.cjs +876 -0
  463. package/dist/utils/orchestration/index.cjs.map +1 -0
  464. package/dist/utils/orchestration/index.d.cts +233 -0
  465. package/dist/utils/orchestration/index.d.ts +233 -0
  466. package/dist/utils/orchestration/index.js +19 -0
  467. package/dist/utils/orchestration/index.js.map +1 -0
  468. package/dist/utils/process/index.cjs +743 -0
  469. package/dist/utils/process/index.cjs.map +1 -0
  470. package/dist/utils/process/index.d.cts +411 -0
  471. package/dist/utils/process/index.d.ts +411 -0
  472. package/dist/utils/process/index.js +14 -0
  473. package/dist/utils/process/index.js.map +1 -0
  474. package/dist/utils/reactive-layout/index.cjs +1607 -0
  475. package/dist/utils/reactive-layout/index.cjs.map +1 -0
  476. package/dist/utils/reactive-layout/index.d.cts +492 -0
  477. package/dist/utils/reactive-layout/index.d.ts +492 -0
  478. package/dist/utils/reactive-layout/index.js +52 -0
  479. package/dist/utils/reactive-layout/index.js.map +1 -0
  480. package/dist/utils/reduction/index.cjs +203 -0
  481. package/dist/utils/reduction/index.cjs.map +1 -0
  482. package/dist/utils/reduction/index.d.cts +102 -0
  483. package/dist/utils/reduction/index.d.ts +102 -0
  484. package/dist/utils/reduction/index.js +14 -0
  485. package/dist/utils/reduction/index.js.map +1 -0
  486. package/dist/utils/resilience/index.cjs +1617 -0
  487. package/dist/utils/resilience/index.cjs.map +1 -0
  488. package/dist/utils/resilience/index.d.cts +9 -0
  489. package/dist/utils/resilience/index.d.ts +9 -0
  490. package/dist/utils/resilience/index.js +44 -0
  491. package/dist/utils/resilience/index.js.map +1 -0
  492. package/dist/utils/surface/index.cjs +1070 -0
  493. package/dist/utils/surface/index.cjs.map +1 -0
  494. package/dist/utils/surface/index.d.cts +240 -0
  495. package/dist/utils/surface/index.d.ts +240 -0
  496. package/dist/utils/surface/index.js +30 -0
  497. package/dist/utils/surface/index.js.map +1 -0
  498. package/dist/utils/topology-view/index.cjs +620 -0
  499. package/dist/utils/topology-view/index.cjs.map +1 -0
  500. package/dist/utils/topology-view/index.d.cts +68 -0
  501. package/dist/utils/topology-view/index.d.ts +68 -0
  502. package/dist/utils/topology-view/index.js +11 -0
  503. package/dist/utils/topology-view/index.js.map +1 -0
  504. package/package.json +293 -237
  505. package/dist/core/index.cjs +0 -21
  506. package/dist/core/index.cjs.map +0 -1
  507. package/dist/core/index.d.cts +0 -1
  508. package/dist/core/index.d.ts +0 -1
  509. package/dist/core/index.js +0 -3
  510. package/dist/core/index.js.map +0 -1
  511. package/dist/extra/browser.cjs +0 -21
  512. package/dist/extra/browser.cjs.map +0 -1
  513. package/dist/extra/browser.d.cts +0 -1
  514. package/dist/extra/browser.d.ts +0 -1
  515. package/dist/extra/browser.js +0 -3
  516. package/dist/extra/browser.js.map +0 -1
  517. package/dist/extra/index.cjs +0 -21
  518. package/dist/extra/index.cjs.map +0 -1
  519. package/dist/extra/index.d.cts +0 -1
  520. package/dist/extra/index.d.ts +0 -1
  521. package/dist/extra/index.js +0 -3
  522. package/dist/extra/index.js.map +0 -1
  523. package/dist/extra/node.cjs +0 -21
  524. package/dist/extra/node.cjs.map +0 -1
  525. package/dist/extra/node.d.cts +0 -1
  526. package/dist/extra/node.d.ts +0 -1
  527. package/dist/extra/node.js +0 -3
  528. package/dist/extra/node.js.map +0 -1
  529. package/dist/extra/operators.cjs +0 -21
  530. package/dist/extra/operators.cjs.map +0 -1
  531. package/dist/extra/operators.d.cts +0 -1
  532. package/dist/extra/operators.d.ts +0 -1
  533. package/dist/extra/operators.js +0 -3
  534. package/dist/extra/operators.js.map +0 -1
  535. package/dist/extra/reactive.cjs +0 -21
  536. package/dist/extra/reactive.cjs.map +0 -1
  537. package/dist/extra/reactive.d.cts +0 -1
  538. package/dist/extra/reactive.d.ts +0 -1
  539. package/dist/extra/reactive.js +0 -3
  540. package/dist/extra/reactive.js.map +0 -1
  541. package/dist/extra/render/index.cjs +0 -21
  542. package/dist/extra/render/index.cjs.map +0 -1
  543. package/dist/extra/render/index.d.cts +0 -1
  544. package/dist/extra/render/index.d.ts +0 -1
  545. package/dist/extra/render/index.js +0 -3
  546. package/dist/extra/render/index.js.map +0 -1
  547. package/dist/extra/sources.cjs +0 -21
  548. package/dist/extra/sources.cjs.map +0 -1
  549. package/dist/extra/sources.d.cts +0 -1
  550. package/dist/extra/sources.d.ts +0 -1
  551. package/dist/extra/sources.js +0 -3
  552. package/dist/extra/sources.js.map +0 -1
  553. package/dist/extra/storage-browser.cjs +0 -21
  554. package/dist/extra/storage-browser.cjs.map +0 -1
  555. package/dist/extra/storage-browser.d.cts +0 -1
  556. package/dist/extra/storage-browser.d.ts +0 -1
  557. package/dist/extra/storage-browser.js +0 -3
  558. package/dist/extra/storage-browser.js.map +0 -1
  559. package/dist/extra/storage-core.cjs +0 -21
  560. package/dist/extra/storage-core.cjs.map +0 -1
  561. package/dist/extra/storage-core.d.cts +0 -1
  562. package/dist/extra/storage-core.d.ts +0 -1
  563. package/dist/extra/storage-core.js +0 -3
  564. package/dist/extra/storage-core.js.map +0 -1
  565. package/dist/extra/storage-node.cjs +0 -21
  566. package/dist/extra/storage-node.cjs.map +0 -1
  567. package/dist/extra/storage-node.d.cts +0 -1
  568. package/dist/extra/storage-node.d.ts +0 -1
  569. package/dist/extra/storage-node.js +0 -3
  570. package/dist/extra/storage-node.js.map +0 -1
  571. package/dist/extra/storage-tiers-browser.cjs +0 -21
  572. package/dist/extra/storage-tiers-browser.cjs.map +0 -1
  573. package/dist/extra/storage-tiers-browser.d.cts +0 -1
  574. package/dist/extra/storage-tiers-browser.d.ts +0 -1
  575. package/dist/extra/storage-tiers-browser.js +0 -3
  576. package/dist/extra/storage-tiers-browser.js.map +0 -1
  577. package/dist/extra/storage-tiers-node.cjs +0 -21
  578. package/dist/extra/storage-tiers-node.cjs.map +0 -1
  579. package/dist/extra/storage-tiers-node.d.cts +0 -1
  580. package/dist/extra/storage-tiers-node.d.ts +0 -1
  581. package/dist/extra/storage-tiers-node.js +0 -3
  582. package/dist/extra/storage-tiers-node.js.map +0 -1
  583. package/dist/extra/storage-tiers.cjs +0 -21
  584. package/dist/extra/storage-tiers.cjs.map +0 -1
  585. package/dist/extra/storage-tiers.d.cts +0 -1
  586. package/dist/extra/storage-tiers.d.ts +0 -1
  587. package/dist/extra/storage-tiers.js +0 -3
  588. package/dist/extra/storage-tiers.js.map +0 -1
  589. package/dist/extra/storage-wal.cjs +0 -21
  590. package/dist/extra/storage-wal.cjs.map +0 -1
  591. package/dist/extra/storage-wal.d.cts +0 -1
  592. package/dist/extra/storage-wal.d.ts +0 -1
  593. package/dist/extra/storage-wal.js +0 -3
  594. package/dist/extra/storage-wal.js.map +0 -1
  595. package/dist/graph/index.cjs +0 -21
  596. package/dist/graph/index.cjs.map +0 -1
  597. package/dist/graph/index.d.cts +0 -1
  598. package/dist/graph/index.d.ts +0 -1
  599. package/dist/graph/index.js +0 -3
  600. package/dist/graph/index.js.map +0 -1
  601. package/dist/patterns/ai/browser.cjs +0 -21
  602. package/dist/patterns/ai/browser.cjs.map +0 -1
  603. package/dist/patterns/ai/browser.d.cts +0 -1
  604. package/dist/patterns/ai/browser.d.ts +0 -1
  605. package/dist/patterns/ai/browser.js +0 -3
  606. package/dist/patterns/ai/browser.js.map +0 -1
  607. package/dist/patterns/ai/index.cjs +0 -21
  608. package/dist/patterns/ai/index.cjs.map +0 -1
  609. package/dist/patterns/ai/index.d.cts +0 -1
  610. package/dist/patterns/ai/index.d.ts +0 -1
  611. package/dist/patterns/ai/index.js +0 -3
  612. package/dist/patterns/ai/index.js.map +0 -1
  613. package/dist/patterns/ai/node.cjs +0 -21
  614. package/dist/patterns/ai/node.cjs.map +0 -1
  615. package/dist/patterns/ai/node.d.cts +0 -1
  616. package/dist/patterns/ai/node.d.ts +0 -1
  617. package/dist/patterns/ai/node.js +0 -3
  618. package/dist/patterns/ai/node.js.map +0 -1
  619. package/dist/patterns/cqrs/index.cjs +0 -21
  620. package/dist/patterns/cqrs/index.cjs.map +0 -1
  621. package/dist/patterns/cqrs/index.d.cts +0 -1
  622. package/dist/patterns/cqrs/index.d.ts +0 -1
  623. package/dist/patterns/cqrs/index.js +0 -3
  624. package/dist/patterns/cqrs/index.js.map +0 -1
  625. package/dist/patterns/demo-shell/index.cjs +0 -21
  626. package/dist/patterns/demo-shell/index.cjs.map +0 -1
  627. package/dist/patterns/demo-shell/index.d.cts +0 -1
  628. package/dist/patterns/demo-shell/index.d.ts +0 -1
  629. package/dist/patterns/demo-shell/index.js +0 -3
  630. package/dist/patterns/demo-shell/index.js.map +0 -1
  631. package/dist/patterns/domain-templates/index.cjs +0 -21
  632. package/dist/patterns/domain-templates/index.cjs.map +0 -1
  633. package/dist/patterns/domain-templates/index.d.cts +0 -1
  634. package/dist/patterns/domain-templates/index.d.ts +0 -1
  635. package/dist/patterns/domain-templates/index.js +0 -3
  636. package/dist/patterns/domain-templates/index.js.map +0 -1
  637. package/dist/patterns/graphspec/index.cjs +0 -21
  638. package/dist/patterns/graphspec/index.cjs.map +0 -1
  639. package/dist/patterns/graphspec/index.d.cts +0 -1
  640. package/dist/patterns/graphspec/index.d.ts +0 -1
  641. package/dist/patterns/graphspec/index.js +0 -3
  642. package/dist/patterns/graphspec/index.js.map +0 -1
  643. package/dist/patterns/harness/index.cjs +0 -21
  644. package/dist/patterns/harness/index.cjs.map +0 -1
  645. package/dist/patterns/harness/index.d.cts +0 -1
  646. package/dist/patterns/harness/index.d.ts +0 -1
  647. package/dist/patterns/harness/index.js +0 -3
  648. package/dist/patterns/harness/index.js.map +0 -1
  649. package/dist/patterns/inspect/index.cjs +0 -21
  650. package/dist/patterns/inspect/index.cjs.map +0 -1
  651. package/dist/patterns/inspect/index.d.cts +0 -1
  652. package/dist/patterns/inspect/index.d.ts +0 -1
  653. package/dist/patterns/inspect/index.js +0 -3
  654. package/dist/patterns/inspect/index.js.map +0 -1
  655. package/dist/patterns/job-queue/index.cjs +0 -21
  656. package/dist/patterns/job-queue/index.cjs.map +0 -1
  657. package/dist/patterns/job-queue/index.d.cts +0 -1
  658. package/dist/patterns/job-queue/index.d.ts +0 -1
  659. package/dist/patterns/job-queue/index.js +0 -3
  660. package/dist/patterns/job-queue/index.js.map +0 -1
  661. package/dist/patterns/memory/index.cjs +0 -21
  662. package/dist/patterns/memory/index.cjs.map +0 -1
  663. package/dist/patterns/memory/index.d.cts +0 -1
  664. package/dist/patterns/memory/index.d.ts +0 -1
  665. package/dist/patterns/memory/index.js +0 -3
  666. package/dist/patterns/memory/index.js.map +0 -1
  667. package/dist/patterns/messaging/index.cjs +0 -21
  668. package/dist/patterns/messaging/index.cjs.map +0 -1
  669. package/dist/patterns/messaging/index.d.cts +0 -1
  670. package/dist/patterns/messaging/index.d.ts +0 -1
  671. package/dist/patterns/messaging/index.js +0 -3
  672. package/dist/patterns/messaging/index.js.map +0 -1
  673. package/dist/patterns/orchestration/index.cjs +0 -21
  674. package/dist/patterns/orchestration/index.cjs.map +0 -1
  675. package/dist/patterns/orchestration/index.d.cts +0 -1
  676. package/dist/patterns/orchestration/index.d.ts +0 -1
  677. package/dist/patterns/orchestration/index.js +0 -3
  678. package/dist/patterns/orchestration/index.js.map +0 -1
  679. package/dist/patterns/process/index.cjs +0 -21
  680. package/dist/patterns/process/index.cjs.map +0 -1
  681. package/dist/patterns/process/index.d.cts +0 -1
  682. package/dist/patterns/process/index.d.ts +0 -1
  683. package/dist/patterns/process/index.js +0 -3
  684. package/dist/patterns/process/index.js.map +0 -1
  685. package/dist/patterns/reactive-layout/index.cjs +0 -21
  686. package/dist/patterns/reactive-layout/index.cjs.map +0 -1
  687. package/dist/patterns/reactive-layout/index.d.cts +0 -1
  688. package/dist/patterns/reactive-layout/index.d.ts +0 -1
  689. package/dist/patterns/reactive-layout/index.js +0 -3
  690. package/dist/patterns/reactive-layout/index.js.map +0 -1
  691. package/dist/patterns/reduction/index.cjs +0 -21
  692. package/dist/patterns/reduction/index.cjs.map +0 -1
  693. package/dist/patterns/reduction/index.d.cts +0 -1
  694. package/dist/patterns/reduction/index.d.ts +0 -1
  695. package/dist/patterns/reduction/index.js +0 -3
  696. package/dist/patterns/reduction/index.js.map +0 -1
  697. package/dist/patterns/surface/index.cjs +0 -21
  698. package/dist/patterns/surface/index.cjs.map +0 -1
  699. package/dist/patterns/surface/index.d.cts +0 -1
  700. package/dist/patterns/surface/index.d.ts +0 -1
  701. package/dist/patterns/surface/index.js +0 -3
  702. package/dist/patterns/surface/index.js.map +0 -1
  703. package/dist/patterns/topology-view/index.cjs +0 -21
  704. package/dist/patterns/topology-view/index.cjs.map +0 -1
  705. package/dist/patterns/topology-view/index.d.cts +0 -1
  706. package/dist/patterns/topology-view/index.d.ts +0 -1
  707. package/dist/patterns/topology-view/index.js +0 -3
  708. package/dist/patterns/topology-view/index.js.map +0 -1
  709. package/dist/testing/index.cjs +0 -21
  710. package/dist/testing/index.cjs.map +0 -1
  711. package/dist/testing/index.d.cts +0 -1
  712. package/dist/testing/index.d.ts +0 -1
  713. package/dist/testing/index.js +0 -3
  714. package/dist/testing/index.js.map +0 -1
@@ -0,0 +1,582 @@
1
+ import { Node } from '@graphrefly/pure-ts/core';
2
+ import { ReactiveLogBundle } from '@graphrefly/pure-ts/extra';
3
+ import { Graph } from '@graphrefly/pure-ts/graph';
4
+ import { BaseAuditRecord } from '../../base/mutation/index.cjs';
5
+ import { N as NodeOrValue } from '../../_internal-B23BagFd.cjs';
6
+
7
+ /**
8
+ * DS-14.7 — Reactive Fact Store / Live Knowledge Graph (locked 2026-05-13).
9
+ *
10
+ * Static-topology agent-memory substrate that satisfies MEME L2 (cascade
11
+ * invalidation) and L3 (obsolescence reasoning) plus Hassabis's
12
+ * filter/consolidate/continual-learning frame, **without** materializing one
13
+ * reactive node per fact. ~12 fixed operator nodes never grow regardless of how
14
+ * many facts the store holds; facts live as columnar DATA inside an indexed
15
+ * `state<FactStore>` (optionally sharded), and cascade is implemented as
16
+ * bounded recursive message emission. Termination rests on a per-root
17
+ * semantic contract — a fact only drives the cascade when it transitions to
18
+ * obsolete (`validTo` set), and each obsolete root emits its cascade exactly
19
+ * once across all waves — plus an empty-array fixpoint short-circuit. The
20
+ * cascade is modeled as DATA arrays (NOT INVALIDATE messages), so spec §1.4's
21
+ * idempotent-within-a-wave INVALIDATE guarantee does NOT govern this loop;
22
+ * convergence is the per-root contract, not a spec §1.4 diamond-merge.
23
+ *
24
+ * Canonical design: `archive/docs/SESSION-DS-14.7-reactive-fact-store.md`
25
+ * (9Q walk complete; Q9-open items 1–9 all resolved).
26
+ *
27
+ * Locked decisions baked in here:
28
+ * - `cascadeMaxIterations` default **8**; overflow emits a per-batch summary
29
+ * `{ droppedCount, sample, rootFactId }` to `cascadeOverflow` (Q9-open-4).
30
+ * The overflow `sample` is capped at `OVERFLOW_SAMPLE_SIZE` (8),
31
+ * independent of `cascadeMaxIterations`.
32
+ * - `shardBy` default hash-mod **4**; caller override; `dependentsIndex`
33
+ * unsharded for v1 (Q9-open-1).
34
+ * - `MemoryFragment` adds `embedding? / parent_fragment_id? / provenance?`
35
+ * (Q9-open-3).
36
+ * - `dependentsIndex` updates synchronous + atomic with `factStore` commit
37
+ * (Q9-open-2).
38
+ * - Scoring contract `(fragment, storeReadHandle) => number` — read-only
39
+ * handle, no mutation exposure (Q9-open-5).
40
+ * - Consolidator emits to a dedicated `consolidated` topic that the pattern
41
+ * default-wires back to `ingest`; caller can intercept (Q9-open-6).
42
+ * - Query surface = structured `MemoryQuery` via the `query` topic (default);
43
+ * function-shaped is caller-side `derived` over `factStore` (Q9-open-7).
44
+ * - Bi-temporal is pattern-layer only — no DS-14 envelope shape change
45
+ * (Q9-open-9); `simpleFactStore()` deferred to v1.1 (Q9-open-8 — NOT built).
46
+ *
47
+ * **Cascade cycle visibility.** `cascadeProcessor` stays synchronous (preserves
48
+ * spec §1.4 batch-dedupe — LLM-driven dependency extraction lives UPSTREAM of
49
+ * the cascade topic, never inside the recursion). Every cascade message carries
50
+ * a `causalReason` field and the cycle nodes are tagged `meta.cycle:"cascade"`
51
+ * so `describe()` / `explain()` surface the otherwise-invisible
52
+ * `dependentsIndex` fn-body lookup.
53
+ *
54
+ * @module
55
+ */
56
+
57
+ /** Stable identity for a stored fact. */
58
+ type FactId = string;
59
+ /** Shard partition key (string | number — any hashable scalar). */
60
+ type ShardKey = string | number;
61
+ /**
62
+ * A single stored memory fact. Pattern convention only — NOT a spec primitive
63
+ * and NOT a DS-14 envelope field (bi-temporal stays pattern-layer per
64
+ * Q9-open-9). Each field is a reactive lever (see design PART 2.3):
65
+ * `validTo` set → cascade fires; `confidence < θ` → review; `sources` →
66
+ * `dependentsIndex` edges feeding cascade.
67
+ */
68
+ interface MemoryFragment<T> {
69
+ readonly id: FactId;
70
+ readonly payload: T;
71
+ /** Transaction time (when learned). `bigint` ns (e.g. `BigInt(monotonicNs())`). */
72
+ readonly t_ns: bigint;
73
+ /** Valid-time start. `undefined` = unbounded past. */
74
+ readonly validFrom?: bigint;
75
+ /** Valid-time end. Setting this is the MEME L3 obsolescence lever. */
76
+ readonly validTo?: bigint;
77
+ /** Confidence 0..1. Dropping below the review threshold emits a review. */
78
+ readonly confidence: number;
79
+ readonly tags: readonly string[];
80
+ /** Dependency edges — fact IDs this fact is derived from / depends on. */
81
+ readonly sources: readonly FactId[];
82
+ /** Optional dense embedding (recipes use it for retrieval). */
83
+ readonly embedding?: readonly number[];
84
+ /** Version-chain pointer — consolidator emits successor fragments. */
85
+ readonly parent_fragment_id?: FactId;
86
+ /** Free-form provenance string for audit. */
87
+ readonly provenance?: string;
88
+ }
89
+ /**
90
+ * Columnar in-memory store. Held as DATA inside a `state<FactStore<T>>` node
91
+ * (one per shard). `byId` is the authoritative map; the typed companions are
92
+ * kept for the recipe layer (`bitemporal-query`, `influence-analysis`) — v1
93
+ * stores fragments directly and lazily projects columns on demand.
94
+ */
95
+ interface FactStore<T> {
96
+ readonly byId: ReadonlyMap<FactId, MemoryFragment<T>>;
97
+ }
98
+ /** Reverse dependency index: fact → IDs that depend on it. Unsharded (v1). */
99
+ type DependentsIndex = ReadonlyMap<FactId, readonly FactId[]>;
100
+ /** Read-only projection passed to scoring policies (no mutation surface). */
101
+ interface StoreReadHandle<T> {
102
+ get(id: FactId): MemoryFragment<T> | undefined;
103
+ has(id: FactId): boolean;
104
+ readonly size: number;
105
+ values(): IterableIterator<MemoryFragment<T>>;
106
+ }
107
+ type ScoringPolicy<T> = (fragment: MemoryFragment<T>, store: StoreReadHandle<T>) => number;
108
+ type DecayPolicy = (confidence: number, ageNs: bigint) => number;
109
+ type AdmissionFilter<T> = (fragment: MemoryFragment<T>) => boolean;
110
+ /** Outcome / RL signal — write-back lever for continual learning. */
111
+ interface OutcomeSignal {
112
+ readonly factId: FactId;
113
+ readonly reward: number;
114
+ }
115
+ /** Structured query (Q9-open-7 default surface). Serializable + inspectable. */
116
+ interface MemoryQuery {
117
+ /** Match any of these tags (OR). Omit for no tag filter. */
118
+ readonly tags?: readonly string[];
119
+ /** Bi-temporal "as of" — only facts valid at this instant. */
120
+ readonly asOf?: bigint;
121
+ /** Minimum confidence (inclusive). */
122
+ readonly minConfidence?: number;
123
+ /** Cap results (sorted by confidence desc, then t_ns desc). */
124
+ readonly limit?: number;
125
+ }
126
+ interface MemoryAnswer<T> {
127
+ readonly query: MemoryQuery;
128
+ readonly results: readonly MemoryFragment<T>[];
129
+ }
130
+ type CascadeReason = "cascade" | "obsolete" | "manual";
131
+ /** A single cascade invalidation message flowing through the cascade cycle. */
132
+ interface CascadeEvent {
133
+ readonly factId: FactId;
134
+ readonly rootFactId: FactId;
135
+ readonly reason: CascadeReason;
136
+ /** Cascade recursion depth (1 = first wave). Bounded by `cascadeMaxIterations`. */
137
+ readonly iteration: number;
138
+ /**
139
+ * Human-readable causal chain — makes the `dependentsIndex` fn-body lookup
140
+ * visible in `explain()` output even though it is not a topology edge
141
+ * (design Q3 / COMPOSITION-GUIDE §24 mitigation).
142
+ */
143
+ readonly causalReason: string;
144
+ }
145
+ /** Per-batch overflow summary (Q9-open-4 — never per-message). */
146
+ interface CascadeOverflow {
147
+ readonly droppedCount: number;
148
+ readonly sample: readonly FactId[];
149
+ readonly rootFactId: FactId;
150
+ }
151
+ interface ReviewRequest {
152
+ readonly factId: FactId;
153
+ readonly confidence: number;
154
+ readonly threshold: number;
155
+ }
156
+ interface FactStoreAuditRecord extends BaseAuditRecord {
157
+ readonly action: "ingest" | "invalidate" | "outcome" | "consolidate" | "overflow";
158
+ readonly id?: FactId;
159
+ readonly reason?: CascadeReason;
160
+ }
161
+ interface ReactiveFactStoreConfig<T> {
162
+ readonly extractDependencies: (f: MemoryFragment<T>) => readonly FactId[];
163
+ /** Shard partition fn. Default: FNV-1a hash of `id` mod `shardCount`. */
164
+ readonly shardBy?: (f: MemoryFragment<T>) => ShardKey;
165
+ /** Shard count for the default hash-mod sharder. Default 4 (§3.2). */
166
+ readonly shardCount?: number;
167
+ readonly scoring?: Node<ScoringPolicy<T>>;
168
+ readonly decay?: Node<DecayPolicy>;
169
+ readonly admissionFilter?: Node<AdmissionFilter<T>>;
170
+ readonly ingest: Node<MemoryFragment<T>>;
171
+ readonly outcome?: Node<OutcomeSignal>;
172
+ readonly query?: Node<MemoryQuery>;
173
+ /**
174
+ * Consolidator trigger — a reactive timer/cron Node (e.g. `fromCron(...)`).
175
+ * When supplied, the `consolidated` node maps each tick to summarized
176
+ * fragments emitted on the `consolidated` topic and default-wired back to
177
+ * the internal ingest path.
178
+ */
179
+ readonly consolidateTrigger?: Node<unknown>;
180
+ /**
181
+ * Consolidation summarizer. Reads a store snapshot, returns successor
182
+ * fragments (typically with `parent_fragment_id` set). Default: no-op
183
+ * (emits nothing) so the cron tick is observable without forcing a policy.
184
+ */
185
+ readonly consolidate?: (store: StoreReadHandle<T>) => readonly MemoryFragment<T>[];
186
+ /** Cascade recursion cap (§3.1). Default 8. */
187
+ readonly cascadeMaxIterations?: number;
188
+ /** Confidence below which a {@link ReviewRequest} is emitted. Default 0.3. */
189
+ readonly reviewThreshold?: number;
190
+ }
191
+ interface ReactiveFactStoreGraph<T> extends Graph {
192
+ /** Per-shard `state<FactStore<T>>` nodes (length = shard count). */
193
+ readonly shards: readonly Node<FactStore<T>>[];
194
+ /** Unified read view across all shards (derived). */
195
+ readonly factStore: Node<FactStore<T>>;
196
+ readonly dependentsIndex: Node<DependentsIndex>;
197
+ readonly answer: Node<MemoryAnswer<T> | null>;
198
+ readonly cascade: Node<readonly CascadeEvent[]>;
199
+ readonly cascadeOverflow: Node<CascadeOverflow | null>;
200
+ readonly review: Node<ReviewRequest | null>;
201
+ readonly consolidated: Node<readonly MemoryFragment<T>[]>;
202
+ readonly events: ReactiveLogBundle<FactStoreAuditRecord>;
203
+ /** Reactive read: a single fact by id (SENTINEL until the fact exists). */
204
+ itemNode(id: FactId): Node<MemoryFragment<T> | undefined>;
205
+ }
206
+ /**
207
+ * Build a static-topology reactive fact store (DS-14.7 architecture C).
208
+ *
209
+ * Topology (~12 fixed nodes — never grows with fact count):
210
+ * - `shards[0..N]` — `state<FactStore<T>>` columnar stores (default 4 shards).
211
+ * - `factStore` — derived union read view across shards.
212
+ * - `dependentsIndex` — `state<DependentsIndex>` reverse-dep map, unsharded,
213
+ * updated synchronously + atomically with each commit (Q9-open-2).
214
+ * - `extractOp` — derived: ingest → admission-filtered fragment + dep edges.
215
+ * - `invalidationDetector` — derived: scans committed store for `validTo`-set
216
+ * / low-confidence facts, resolves dependents via `dependentsIndex`, emits
217
+ * cascade messages.
218
+ * - `cascade` — topic node carrying `CascadeEvent[]`.
219
+ * - `cascadeProcessor` — derived, **synchronous**, `meta.cycle:"cascade"`:
220
+ * dedupes by factId, writes invalidations back to shards, recurses until
221
+ * fixpoint OR `cascadeMaxIterations` → `cascadeOverflow`.
222
+ * - `cascadeOverflow` — per-batch overflow summary node.
223
+ * - `queryOp` / `answer` — structured `MemoryQuery` → results (SENTINEL-safe).
224
+ * - `outcomeProcessor` — outcome signal → confidence write-back.
225
+ * - `consolidated` — cron-tick → summarized fragments on the
226
+ * `consolidated` topic,
227
+ * default-wired back into the ingest path.
228
+ * - `review` — low-confidence proactive-verification requests.
229
+ *
230
+ * The cascade cycle (`invalidationDetector → cascade → cascadeProcessor →
231
+ * shards → invalidationDetector`) is a real, bounded reactive cycle. Both
232
+ * `invalidationDetector` and `cascadeProcessor` are tagged
233
+ * `meta.cycle:"cascade"` and every cascade message carries `causalReason`, so
234
+ * `describe()` / `explain()` surface the otherwise-invisible
235
+ * `dependentsIndex` lookup (COMPOSITION-GUIDE §24).
236
+ *
237
+ * @category memory
238
+ */
239
+ declare function reactiveFactStore<T>(config: ReactiveFactStoreConfig<T>): ReactiveFactStoreGraph<T>;
240
+
241
+ /**
242
+ * Memory patterns (roadmap §4.3) — public-face Phase-4 primitives audited under
243
+ * `archive/docs/SESSION-public-face-blocks-review.md` (Wave A, locked 2026-04-25).
244
+ *
245
+ * Three primitives (the pure `decay` helper was promoted to `extra/utils/decay.ts`
246
+ * per Tier 2.2 and is no longer re-exported here; `lightCollection` was folded
247
+ * into `collection({ranked:false})` per Tier 2.3 and is no longer a separate
248
+ * factory):
249
+ * - {@link collection} / {@link CollectionGraph} — keyed memory store with
250
+ * optional decay-aware ranking. Pass `{ ranked: false }` for the previous
251
+ * `lightCollection` shape (Map + LRU + audit, no scoring).
252
+ * - {@link vectorIndex} / {@link VectorIndexGraph} — reactive vector store with
253
+ * optional HNSW backend, retention, and reactive {@link VectorIndexGraph.searchNode}.
254
+ * - {@link knowledgeGraph} / {@link KnowledgeGraph} — entities + typed edges with
255
+ * symmetric adjacency indexes and reactive {@link KnowledgeGraph.relatedNode}.
256
+ *
257
+ * **No imperative reads.** Per the API-style policy locked 2026-04-25, public-face
258
+ * primitives expose reactive reads only — `itemNode` / `hasNode` / `searchNode` /
259
+ * `relatedNode`. One-shot snapshots use `node.cache` after `awaitSettled`, or
260
+ * `firstValueFrom(node)`.
261
+ *
262
+ * **Audit logs.** Every imperative mutation (`upsert / remove / clear / link /
263
+ * unlink / rescore / reindex`) is wrapped via {@link mutate} and appends a
264
+ * typed record to a public `events` log on the bundle / graph.
265
+ *
266
+ * @module
267
+ */
268
+
269
+ /**
270
+ * Cosine similarity over `(a, b)`. When lengths differ, the shorter is
271
+ * implicitly zero-padded to the longer length. Returns `0` if either vector
272
+ * has zero norm. Public utility — used by {@link VectorIndexGraph.searchNode}
273
+ * and exposed for downstream consumers (e.g. `patterns/ai/memory/`) that need
274
+ * the same scoring at the boundary.
275
+ *
276
+ * **Numeric guards.** Returns `0` for non-finite results (overflow producing
277
+ * `Infinity`/`NaN` from very-large vectors, or `NaN` propagating from any
278
+ * `NaN`/`Infinity` component). Without this guard, downstream sort
279
+ * comparators would order NaN-scored rows arbitrarily.
280
+ *
281
+ * **Depth.** This is a per-call computation; no internal caching. For very
282
+ * large indexes (>10k) consider precomputing norms or using HNSW.
283
+ *
284
+ * @category memory
285
+ */
286
+ declare function cosineSimilarity(a: readonly number[], b: readonly number[]): number;
287
+
288
+ type CollectionEntry<T> = {
289
+ readonly id: string;
290
+ readonly value: T;
291
+ readonly createdAtNs: number;
292
+ readonly lastAccessNs: number;
293
+ readonly baseScore: number;
294
+ };
295
+ type RankedCollectionEntry<T> = CollectionEntry<T> & {
296
+ readonly score: number;
297
+ };
298
+ type CollectionScoreFn<T> = (value: T) => number;
299
+ type CollectionOptions<T> = {
300
+ maxSize?: number;
301
+ /**
302
+ * Whether to expose a live decay-aware `ranked` node + `rescore` mutator.
303
+ * Default `true`. Pass `false` to fold in the previous `lightCollection`
304
+ * shape — entries are still keyed/audited/LRU-evicted, but the timer-driven
305
+ * `ranked` + scoring machinery is skipped. `ranked` then resolves to a
306
+ * static empty array Node and `rescore()` is a no-op (so callers writing
307
+ * type-generic code don't need to special-case the unranked path).
308
+ */
309
+ ranked?: boolean;
310
+ /**
311
+ * Produces a base score at insert/update time. Static fn or a reactive
312
+ * `Node<(value: T) => number>` — when supplied as a Node, `ranked` re-derives
313
+ * whenever the score fn changes, but `baseScore` on each entry is only
314
+ * recomputed via {@link CollectionGraph.rescore}. Default `() => 1`.
315
+ *
316
+ * Ignored when `ranked: false` (entries record `baseScore: 0`).
317
+ */
318
+ score?: CollectionScoreFn<T> | Node<CollectionScoreFn<T>>;
319
+ /**
320
+ * Exponential decay rate per second. `0` disables decay (default). When
321
+ * positive, `ranked` becomes fully reactive on time via a `fromTimer` source
322
+ * (cadence auto-derived from `decayRate` unless overridden via
323
+ * `refreshIntervalMs`). Half-life: `ratePerSecond = Math.LN2 / halfLifeSeconds`.
324
+ *
325
+ * Ignored when `ranked: false`.
326
+ */
327
+ decayRate?: number;
328
+ /** Minimum score floor after decay. Default `0`. */
329
+ minScore?: number;
330
+ /**
331
+ * Override for the `ranked` refresh tick cadence (milliseconds). When
332
+ * unset and `decayRate > 0`, defaults to `1000 * Math.LN2 / (10 * decayRate)`
333
+ * — roughly one tick per 10% of the half-life (~10% staleness budget).
334
+ */
335
+ refreshIntervalMs?: number;
336
+ };
337
+ interface CollectionAuditRecord extends BaseAuditRecord {
338
+ readonly action: "upsert" | "remove" | "clear" | "rescore";
339
+ readonly id?: string;
340
+ }
341
+ type CollectionGraph<T> = Graph & {
342
+ readonly events: ReactiveLogBundle<CollectionAuditRecord>;
343
+ readonly items: Node<ReadonlyMap<string, CollectionEntry<T>>>;
344
+ /**
345
+ * Live decay-aware ranking, sorted by score descending. When the
346
+ * collection was constructed with `ranked: false`, this is a static
347
+ * empty-array Node (kept for type uniformity).
348
+ */
349
+ readonly ranked: Node<readonly RankedCollectionEntry<T>[]>;
350
+ readonly size: Node<number>;
351
+ upsert: (id: string, value: T, opts?: {
352
+ score?: number;
353
+ }) => void;
354
+ remove: (id: string) => void;
355
+ clear: () => void;
356
+ /**
357
+ * Recompute every entry's `baseScore` via the latest score fn. O(N). Useful
358
+ * when a reactive `score` Node has emitted a new fn and the caller wants
359
+ * existing entries re-scored without an explicit re-upsert.
360
+ *
361
+ * No-op (still records an audit entry) when constructed with
362
+ * `ranked: false`.
363
+ */
364
+ rescore: () => void;
365
+ itemNode: (id: NodeOrValue<string>) => Node<CollectionEntry<T> | undefined>;
366
+ /** Reactive `true` once the entry exists; tracks upsert / remove. */
367
+ hasNode: (id: NodeOrValue<string>) => Node<boolean>;
368
+ };
369
+ /**
370
+ * Scored memory store with live decay-aware ranking.
371
+ *
372
+ * Topology (mounted on the returned graph):
373
+ * - `items` — `reactiveMap<id, CollectionEntry<T>>` (with `retention` configured
374
+ * for score-based eviction when `maxSize` is set).
375
+ * - `ranked` — `Node<readonly RankedCollectionEntry<T>[]>`, sorted by live
376
+ * decayed score. **Lazy** — does NOT compute until subscribed (no internal
377
+ * keepalive). Use `keepalive(coll.ranked)` for eager activation.
378
+ * - `size` — `Node<number>`, count of entries.
379
+ * - `_refreshTick` — `fromTimer`-driven `monotonicNs()` source, mounted only
380
+ * when `decayRate > 0`. Drives `ranked`'s time-dependent re-derivation.
381
+ * - `_seq` — sequence cursor for the audit log.
382
+ * - `events` — bounded reactive log of every mutation.
383
+ *
384
+ * **Time as a reactive dep.** When `decayRate > 0`, `ranked`'s deps are
385
+ * `[items, refreshTick]` — the tick payload IS `monotonicNs()`, so the fn is
386
+ * pure of deps and dry-run-reproducible with a mocked clock.
387
+ *
388
+ * **Lazy timer.** With no subscriber to `ranked`, the timer source does not
389
+ * fire — the activation chain is downstream-driven. To keep the timer warm
390
+ * without consuming results, register `graph.addDisposer(keepalive(coll.ranked))`.
391
+ *
392
+ * **Eviction at write-time.** Score-based retention runs on every successful
393
+ * `upsert / remove / clear` (it is mutation-driven, not tick-driven). The
394
+ * retention scorer reads `monotonicNs()` to compute decayed scores at eviction
395
+ * time — this is a deliberate impurity vs. `ReactiveMapRetention.score`'s
396
+ * "pure of `(key, value)`" docstring: write-time is the right moment to evict
397
+ * stale-by-decay entries.
398
+ *
399
+ * **No imperative reads.** Subscribe to `items` / `ranked` for live snapshots,
400
+ * or use `itemNode(id)` for single-key reactive reads.
401
+ *
402
+ * **`rescore` ordering caveat.** `rescore()` reads `items.entries.cache`
403
+ * (the post-emission snapshot) and writes via `setMany`. When called
404
+ * stand-alone it sees the latest committed state. When wrapped inside a
405
+ * user-level `batch(() => { coll.upsert(...); coll.rescore(); })`, the
406
+ * `cache` snapshot reflects state BEFORE the batch — so a just-staged
407
+ * upsert is invisible to the rescore scan. If you need rescore to include
408
+ * the staged upsert, either call `rescore()` after the batch settles or
409
+ * pass the new `baseScore` directly via `upsert(id, value, { score })`.
410
+ *
411
+ * **Audit no-op records.** Like `lightCollection`, mutations record audit
412
+ * entries even when the impl was a no-op (e.g., `rescore()` on an empty
413
+ * store). Intentional — the framework records attempts.
414
+ *
415
+ * @category memory
416
+ */
417
+ declare function collection<T>(name: string, opts?: CollectionOptions<T>): CollectionGraph<T>;
418
+ type VectorBackend = "flat" | "hnsw";
419
+ type VectorRecord<TMeta> = {
420
+ readonly id: string;
421
+ readonly vector: readonly number[];
422
+ readonly meta?: TMeta;
423
+ /** Wall-clock-monotonic timestamp at last upsert; used for the default LRU retention. */
424
+ readonly upsertedAtNs: number;
425
+ };
426
+ type VectorSearchResult<TMeta> = {
427
+ readonly id: string;
428
+ readonly score: number;
429
+ readonly meta?: TMeta;
430
+ };
431
+ type HnswAdapter<TMeta> = {
432
+ upsert: (id: string, vector: readonly number[], meta?: TMeta) => void;
433
+ remove: (id: string) => void;
434
+ clear: () => void;
435
+ search: (query: readonly number[], k: number) => ReadonlyArray<VectorSearchResult<TMeta>>;
436
+ /** Optional adapter teardown. Called from `graph.destroy()` via `addDisposer`. */
437
+ dispose?: () => void;
438
+ };
439
+ type VectorIndexOptions<TMeta> = {
440
+ name?: string;
441
+ backend?: VectorBackend;
442
+ dimension?: number;
443
+ /**
444
+ * Strict-dimension default. When `true` (default) AND `dimension` is unset,
445
+ * mixed-length upserts throw `RangeError`. Set `false` to opt into the
446
+ * lenient zero-padding behavior of {@link VectorIndexGraph.searchNode}.
447
+ */
448
+ strictDimension?: boolean;
449
+ /** Optional dependency seam for HNSW. */
450
+ hnswFactory?: () => HnswAdapter<TMeta>;
451
+ /** Maximum live entries (LRU-by-upsert-time when set; user-overridable via `retentionScore`). */
452
+ maxSize?: number;
453
+ /** Custom retention scorer. Higher score = kept. Defaults to `r => r.upsertedAtNs`. */
454
+ retentionScore?: (record: VectorRecord<TMeta>) => number;
455
+ };
456
+ interface VectorIndexAuditRecord extends BaseAuditRecord {
457
+ readonly action: "upsert" | "remove" | "clear" | "reindex" | "evict";
458
+ readonly id?: string;
459
+ }
460
+ type VectorIndexGraph<TMeta> = Graph & {
461
+ readonly backend: VectorBackend;
462
+ readonly events: ReactiveLogBundle<VectorIndexAuditRecord>;
463
+ readonly entries: Node<ReadonlyMap<string, VectorRecord<TMeta>>>;
464
+ upsert: (id: string, vector: readonly number[], meta?: TMeta) => void;
465
+ remove: (id: string) => void;
466
+ clear: () => void;
467
+ /** Re-push every live entry into the optional HNSW adapter. No-op for `flat`. */
468
+ reindex: () => void;
469
+ /**
470
+ * Reactive top-K search. Re-derives whenever entries / query / k change.
471
+ * Lazy. Use `firstValueFrom(searchNode(...))` for one-shot reads.
472
+ */
473
+ searchNode: (query: Node<readonly number[]>, k?: NodeOrValue<number>) => Node<readonly VectorSearchResult<TMeta>[]>;
474
+ };
475
+ /**
476
+ * Reactive vector store with optional HNSW backend.
477
+ *
478
+ * **Storage on `reactiveMap`.** `entries` is a `reactiveMap<id, VectorRecord<TMeta>>`
479
+ * with optional score-based retention (`maxSize` + LRU-by-`upsertedAtNs` by
480
+ * default; user can supply a custom `retentionScore`). On retention eviction,
481
+ * the HNSW adapter (if configured) is also notified via `adapter.remove(id)`.
482
+ *
483
+ * **Reactive search.** `searchNode(queryNode, k)` returns a `Node<readonly
484
+ * VectorSearchResult<TMeta>[]>` that re-derives on entries / query / k change.
485
+ * Lazy — only computes when subscribed. Imperative `search()` is intentionally
486
+ * not exposed (no-imperative-reads policy). Use `firstValueFrom(searchNode(...))`
487
+ * for one-shot reads.
488
+ *
489
+ * **Strict dimension.** Default `strictDimension: true` — if `dimension` is
490
+ * unset and an upsert produces a vector of a different length than the first
491
+ * upserted, throws `RangeError`. Pass `strictDimension: false` to opt into
492
+ * the lenient zero-padding fallback (the previous default).
493
+ *
494
+ * **Adapter lifecycle.** When the HNSW adapter exposes a `dispose()` method,
495
+ * it is bound to the graph's teardown via `addDisposer`. When retention
496
+ * evicts an entry, `adapter.remove(id)` is invoked synchronously inside the
497
+ * retention `onArchive` callback.
498
+ *
499
+ * **Cosine zero-pad.** The flat backend uses cosine similarity over the
500
+ * pairwise max-length zero-pad. Mixing dimensions silently degrades scores
501
+ * unless strict mode catches it at upsert time. For embedding-model vectors,
502
+ * L2-normalize at the source — `vectorIndex` does not normalize.
503
+ *
504
+ * @category memory
505
+ */
506
+ declare function vectorIndex<TMeta>(opts?: VectorIndexOptions<TMeta>): VectorIndexGraph<TMeta>;
507
+ type KnowledgeEdge<TRelation extends string = string> = {
508
+ readonly from: string;
509
+ readonly to: string;
510
+ readonly relation: TRelation;
511
+ readonly weight: number;
512
+ };
513
+ type KnowledgeGraphOptions = {
514
+ /** Cap on entity count (LRU-by-upsert-time when set). */
515
+ entitiesMaxSize?: number;
516
+ /** Cap on edge count (LRU-by-upsert-time when set). */
517
+ edgesMaxSize?: number;
518
+ /**
519
+ * Orphan-entity garbage collection. `"keep"` (default) leaves entities
520
+ * untouched when their last edge is unlinked; `"remove"` deletes the
521
+ * entity post-`unlink` if no edges reference it.
522
+ */
523
+ orphanGC?: "keep" | "remove";
524
+ };
525
+ interface KnowledgeGraphAuditRecord extends BaseAuditRecord {
526
+ readonly action: "upsertEntity" | "removeEntity" | "link" | "unlink" | "orphanRemove";
527
+ readonly id?: string;
528
+ readonly from?: string;
529
+ readonly to?: string;
530
+ readonly relation?: string;
531
+ /** Edge weight at the time of the `link`. Omitted for non-edge actions. */
532
+ readonly weight?: number;
533
+ }
534
+ type KnowledgeGraph<TEntity, TRelation extends string = string> = Graph & {
535
+ readonly events: ReactiveLogBundle<KnowledgeGraphAuditRecord>;
536
+ readonly entities: Node<ReadonlyMap<string, TEntity>>;
537
+ readonly edges: Node<ReadonlyMap<string, KnowledgeEdge<TRelation>>>;
538
+ readonly adjacencyOut: Node<ReadonlyMap<string, readonly KnowledgeEdge<TRelation>[]>>;
539
+ readonly adjacencyIn: Node<ReadonlyMap<string, readonly KnowledgeEdge<TRelation>[]>>;
540
+ readonly entityCount: Node<number>;
541
+ readonly edgeCount: Node<number>;
542
+ upsertEntity: (id: string, value: TEntity) => void;
543
+ removeEntity: (id: string) => void;
544
+ link: (from: string, to: string, relation: TRelation, weight?: number) => void;
545
+ unlink: (from: string, to: string, relation?: TRelation) => void;
546
+ relatedNode: (id: NodeOrValue<string>, relation?: NodeOrValue<TRelation>) => Node<readonly KnowledgeEdge<TRelation>[]>;
547
+ };
548
+ /**
549
+ * Reactive knowledge graph: entities + typed edges + symmetric adjacency.
550
+ *
551
+ * Topology (mounted on the returned graph):
552
+ * - `entities` — `reactiveMap<id, TEntity>` (optional `entitiesMaxSize` LRU).
553
+ * - `edges` — `reactiveMap<tripleKey, KnowledgeEdge<TRelation>>` keyed by
554
+ * `${from}${to}${relation}` (optional `edgesMaxSize` LRU).
555
+ * Entity IDs / relations must NOT contain ``.
556
+ * - `adjacencyOut` — `Node<ReadonlyMap<from, readonly edge[]>>`. **Full O(E)
557
+ * rebuild on every `link` / `unlink` mutation.** (Prior JSDoc claim of
558
+ * "O(E) build" referred to a single rebuild — the per-mutation cost is
559
+ * O(E), not O(1) amortized. For very large graphs with frequent edge
560
+ * churn, consider batching via `reactiveMap.setMany`.)
561
+ * - `adjacencyIn` — `Node<ReadonlyMap<to, readonly edge[]>>`. Same O(E) per
562
+ * mutation rebuild characteristic.
563
+ * - `entityCount` / `edgeCount` — observability deriveds.
564
+ * - `events` — bounded reactive audit log.
565
+ *
566
+ * **`link()` semantics.** Calling `link(a, b, rel, w)` twice with different
567
+ * weights replaces the weight on the existing edge (keyed by the triple).
568
+ * `unlink` then `link` re-creates the edge (and bumps `lastUpsertNs` for
569
+ * retention purposes).
570
+ *
571
+ * **Edge weight convention.** Higher weight = stronger relation. Default `1`.
572
+ *
573
+ * **Orphan GC.** `orphanGC: "remove"` deletes an entity from `entities` after
574
+ * an `unlink` that empties its adjacency on both sides. Default `"keep"`.
575
+ *
576
+ * **No imperative reads.** Use `relatedNode(id, relation?)` for reactive reads.
577
+ *
578
+ * @category memory
579
+ */
580
+ declare function knowledgeGraph<TEntity, TRelation extends string = string>(name: string, opts?: KnowledgeGraphOptions): KnowledgeGraph<TEntity, TRelation>;
581
+
582
+ export { type AdmissionFilter, type CascadeEvent, type CascadeOverflow, type CascadeReason, type CollectionAuditRecord, type CollectionEntry, type CollectionGraph, type CollectionOptions, type CollectionScoreFn, type DecayPolicy, type DependentsIndex, type FactId, type FactStore, type FactStoreAuditRecord, type HnswAdapter, type KnowledgeEdge, type KnowledgeGraph, type KnowledgeGraphAuditRecord, type KnowledgeGraphOptions, type MemoryAnswer, type MemoryFragment, type MemoryQuery, NodeOrValue, type OutcomeSignal, type RankedCollectionEntry, type ReactiveFactStoreConfig, type ReactiveFactStoreGraph, type ReviewRequest, type ScoringPolicy, type ShardKey, type StoreReadHandle, type VectorBackend, type VectorIndexAuditRecord, type VectorIndexGraph, type VectorIndexOptions, type VectorRecord, type VectorSearchResult, collection, cosineSimilarity, knowledgeGraph, reactiveFactStore, vectorIndex };