@graphrefly/graphrefly 0.45.0 → 0.47.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 +865 -0
  15. package/dist/base/composition/index.cjs.map +1 -0
  16. package/dist/base/composition/index.d.cts +468 -0
  17. package/dist/base/composition/index.d.ts +468 -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 +6390 -0
  21. package/dist/base/index.cjs.map +1 -0
  22. package/dist/base/index.d.cts +21 -0
  23. package/dist/base/index.d.ts +21 -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-22SG74BD.js +207 -0
  91. package/dist/chunk-22SG74BD.js.map +1 -0
  92. package/dist/chunk-255UCBG4.js +58 -0
  93. package/dist/chunk-255UCBG4.js.map +1 -0
  94. package/dist/chunk-2LO3EL4W.js +1 -0
  95. package/dist/chunk-2LO3EL4W.js.map +1 -0
  96. package/dist/chunk-2OB3CEJS.js +1065 -0
  97. package/dist/chunk-2OB3CEJS.js.map +1 -0
  98. package/dist/chunk-36NMM65U.js +144 -0
  99. package/dist/chunk-36NMM65U.js.map +1 -0
  100. package/dist/chunk-3CEXCBN6.js +1 -0
  101. package/dist/chunk-3CEXCBN6.js.map +1 -0
  102. package/dist/chunk-3MUSLI6E.js +105 -0
  103. package/dist/chunk-3MUSLI6E.js.map +1 -0
  104. package/dist/chunk-3PSLNJDU.js +884 -0
  105. package/dist/chunk-3PSLNJDU.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-5IMMNARC.js +1153 -0
  115. package/dist/chunk-5IMMNARC.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-EHRRQ4IC.js +211 -0
  145. package/dist/chunk-EHRRQ4IC.js.map +1 -0
  146. package/dist/chunk-EVYY4X5A.js +509 -0
  147. package/dist/chunk-EVYY4X5A.js.map +1 -0
  148. package/dist/chunk-FDFD67UO.js +1 -0
  149. package/dist/chunk-FDFD67UO.js.map +1 -0
  150. package/dist/chunk-FMPF42Q4.js +13 -0
  151. package/dist/chunk-FMPF42Q4.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-GWRNLJNW.js +2508 -0
  155. package/dist/chunk-GWRNLJNW.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-IHTWQEDR.js +169 -0
  159. package/dist/chunk-IHTWQEDR.js.map +1 -0
  160. package/dist/chunk-IJRR6YAI.js +128 -0
  161. package/dist/chunk-IJRR6YAI.js.map +1 -0
  162. package/dist/chunk-JGFRAFDL.js +221 -0
  163. package/dist/chunk-JGFRAFDL.js.map +1 -0
  164. package/dist/chunk-JKTC747G.js +725 -0
  165. package/dist/chunk-JKTC747G.js.map +1 -0
  166. package/dist/chunk-KN3H5CNT.js +11 -0
  167. package/dist/chunk-KN3H5CNT.js.map +1 -0
  168. package/dist/chunk-KPG3DGLA.js +1 -0
  169. package/dist/chunk-KPG3DGLA.js.map +1 -0
  170. package/dist/chunk-KRNQ6RGQ.js +1 -0
  171. package/dist/chunk-KRNQ6RGQ.js.map +1 -0
  172. package/dist/chunk-MLTPJMH6.js +417 -0
  173. package/dist/chunk-MLTPJMH6.js.map +1 -0
  174. package/dist/chunk-N3SZ7BMH.js +95 -0
  175. package/dist/chunk-N3SZ7BMH.js.map +1 -0
  176. package/dist/chunk-NDUD3IMO.js +540 -0
  177. package/dist/chunk-NDUD3IMO.js.map +1 -0
  178. package/dist/chunk-NY2PYHNC.js +873 -0
  179. package/dist/chunk-NY2PYHNC.js.map +1 -0
  180. package/dist/chunk-O3MT7DYI.js +225 -0
  181. package/dist/chunk-O3MT7DYI.js.map +1 -0
  182. package/dist/chunk-OCUDSN63.js +2386 -0
  183. package/dist/chunk-OCUDSN63.js.map +1 -0
  184. package/dist/chunk-OIWU3NYV.js +199 -0
  185. package/dist/chunk-OIWU3NYV.js.map +1 -0
  186. package/dist/chunk-OQUIJT7A.js +1 -0
  187. package/dist/chunk-OQUIJT7A.js.map +1 -0
  188. package/dist/chunk-P5LBT622.js +105 -0
  189. package/dist/chunk-P5LBT622.js.map +1 -0
  190. package/dist/chunk-PKGQG5QQ.js +519 -0
  191. package/dist/chunk-PKGQG5QQ.js.map +1 -0
  192. package/dist/chunk-PKPO3JTZ.js +561 -0
  193. package/dist/chunk-PKPO3JTZ.js.map +1 -0
  194. package/dist/chunk-PL5UDIQ5.js +118 -0
  195. package/dist/chunk-PL5UDIQ5.js.map +1 -0
  196. package/dist/chunk-PZWISPIQ.js +432 -0
  197. package/dist/chunk-PZWISPIQ.js.map +1 -0
  198. package/dist/chunk-Q3EYOCZB.js +510 -0
  199. package/dist/chunk-Q3EYOCZB.js.map +1 -0
  200. package/dist/chunk-QMBYUVRL.js +15 -0
  201. package/dist/chunk-QMBYUVRL.js.map +1 -0
  202. package/dist/chunk-RAGGHLCV.js +200 -0
  203. package/dist/chunk-RAGGHLCV.js.map +1 -0
  204. package/dist/chunk-RJOG4IJU.js +1039 -0
  205. package/dist/chunk-RJOG4IJU.js.map +1 -0
  206. package/dist/chunk-SOOKUYVM.js +403 -0
  207. package/dist/chunk-SOOKUYVM.js.map +1 -0
  208. package/dist/chunk-T5BN5KG7.js +1 -0
  209. package/dist/chunk-T5BN5KG7.js.map +1 -0
  210. package/dist/chunk-TNX5ZGDJ.js +574 -0
  211. package/dist/chunk-TNX5ZGDJ.js.map +1 -0
  212. package/dist/chunk-TP7244Y6.js +207 -0
  213. package/dist/chunk-TP7244Y6.js.map +1 -0
  214. package/dist/chunk-TSBFTJKM.js +57 -0
  215. package/dist/chunk-TSBFTJKM.js.map +1 -0
  216. package/dist/chunk-URQ2CBBF.js +143 -0
  217. package/dist/chunk-URQ2CBBF.js.map +1 -0
  218. package/dist/chunk-VLAGJZSL.js +1079 -0
  219. package/dist/chunk-VLAGJZSL.js.map +1 -0
  220. package/dist/chunk-W2BOPXTI.js +1 -0
  221. package/dist/chunk-W2BOPXTI.js.map +1 -0
  222. package/dist/chunk-Y52CS6YA.js +88 -0
  223. package/dist/chunk-Y52CS6YA.js.map +1 -0
  224. package/dist/chunk-YCBUWK77.js +92 -0
  225. package/dist/chunk-YCBUWK77.js.map +1 -0
  226. package/dist/chunk-YJ4U2D2C.js +314 -0
  227. package/dist/chunk-YJ4U2D2C.js.map +1 -0
  228. package/dist/chunk-Z4YXAUDN.js +239 -0
  229. package/dist/chunk-Z4YXAUDN.js.map +1 -0
  230. package/dist/chunk-Z65DVDEQ.js +146 -0
  231. package/dist/chunk-Z65DVDEQ.js.map +1 -0
  232. package/dist/chunk-Z6EGP5D7.js +92 -0
  233. package/dist/chunk-Z6EGP5D7.js.map +1 -0
  234. package/dist/chunk-ZT4WMQW4.js +1575 -0
  235. package/dist/chunk-ZT4WMQW4.js.map +1 -0
  236. package/dist/chunk-ZVXXDWIB.js +1282 -0
  237. package/dist/chunk-ZVXXDWIB.js.map +1 -0
  238. package/dist/compat/index.cjs +3150 -6
  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 +2291 -6
  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 +76 -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-B6pxYJzO.d.cts +36 -0
  301. package/dist/index-B6pxYJzO.d.ts +36 -0
  302. package/dist/index-BFsng6v1.d.cts +44 -0
  303. package/dist/index-BFsng6v1.d.ts +44 -0
  304. package/dist/index-B_p8tnvf.d.cts +770 -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-DLAxYaN5.d.cts +169 -0
  312. package/dist/index-DLAxYaN5.d.ts +169 -0
  313. package/dist/index-DeWbQzMe.d.cts +34 -0
  314. package/dist/index-DeWbQzMe.d.ts +34 -0
  315. package/dist/index-_HDSmPyp.d.ts +770 -0
  316. package/dist/index-dX9IzPqj.d.cts +86 -0
  317. package/dist/index-dX9IzPqj.d.ts +86 -0
  318. package/dist/index.cjs +26009 -0
  319. package/dist/index.cjs.map +1 -1
  320. package/dist/index.d.cts +55 -42
  321. package/dist/index.d.ts +55 -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-B25XqCbZ.d.cts +59 -0
  329. package/dist/observable-B25XqCbZ.d.ts +59 -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 +17614 -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 +1456 -0
  451. package/dist/utils/memory/index.cjs.map +1 -0
  452. package/dist/utils/memory/index.d.cts +660 -0
  453. package/dist/utils/memory/index.d.ts +660 -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 -241
  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,1282 @@
1
+ import {
2
+ decay
3
+ } from "./chunk-QMBYUVRL.js";
4
+ import {
5
+ domainMeta
6
+ } from "./chunk-FMPF42Q4.js";
7
+ import {
8
+ bumpCursor,
9
+ createAuditLog,
10
+ mutate,
11
+ registerCursor
12
+ } from "./chunk-BXGZFGZ4.js";
13
+
14
+ // src/utils/memory/index.ts
15
+ import { monotonicNs, NodeImpl, node as node2, wallClockNs as wallClockNs2 } from "@graphrefly/pure-ts/core";
16
+ import { fromTimer, keepalive as keepalive2, reactiveMap } from "@graphrefly/pure-ts/extra";
17
+ import { Graph as Graph2 } from "@graphrefly/pure-ts/graph";
18
+
19
+ // src/utils/memory/fact-store.ts
20
+ import { node, wallClockNs } from "@graphrefly/pure-ts/core";
21
+ import { keepalive, reactiveLog } from "@graphrefly/pure-ts/extra";
22
+ import { Graph } from "@graphrefly/pure-ts/graph";
23
+ var OVERFLOW_SAMPLE_SIZE = 8;
24
+ function factMeta(kind, extra) {
25
+ return domainMeta("memory", kind, extra);
26
+ }
27
+ function fnv1a(s) {
28
+ let h = 2166136261;
29
+ for (let i = 0; i < s.length; i += 1) {
30
+ h ^= s.charCodeAt(i);
31
+ h = h + ((h << 1) + (h << 4) + (h << 7) + (h << 8) + (h << 24)) >>> 0;
32
+ }
33
+ return h >>> 0;
34
+ }
35
+ function makeReadHandle(byId) {
36
+ return {
37
+ get: (id) => byId.get(id),
38
+ has: (id) => byId.has(id),
39
+ get size() {
40
+ return byId.size;
41
+ },
42
+ values: () => byId.values()
43
+ };
44
+ }
45
+ function currentlyValid(f, asOf) {
46
+ if (asOf === void 0) return f.validTo === void 0;
47
+ if (f.validFrom !== void 0 && asOf < f.validFrom) return false;
48
+ if (f.validTo !== void 0 && asOf >= f.validTo) return false;
49
+ return true;
50
+ }
51
+ function lastOf(batch, prev) {
52
+ return batch != null && batch.length > 0 ? batch.at(-1) : prev;
53
+ }
54
+ function reactiveFactStore(config) {
55
+ const shardCount = Math.max(1, config.shardCount ?? 4);
56
+ const maxIterations = Math.max(1, config.cascadeMaxIterations ?? 8);
57
+ const reviewThreshold = config.reviewThreshold ?? 0.3;
58
+ const shardBy = config.shardBy ?? ((f) => fnv1a(String(f.id)) % shardCount);
59
+ let cascadeIteration = 0;
60
+ const processedRoots = /* @__PURE__ */ new Set();
61
+ const graph = new Graph("reactive_fact_store");
62
+ const events = createAuditLog({
63
+ name: "events",
64
+ retainedLimit: 1024,
65
+ graph
66
+ });
67
+ const seqCursor = registerCursor(graph, "seq", 0);
68
+ const ingestLog = config.recordIngest ? reactiveLog([], { name: "ingest_log" }) : void 0;
69
+ if (ingestLog) graph.addDisposer(() => ingestLog.dispose());
70
+ const emptyStore = () => ({ byId: /* @__PURE__ */ new Map() });
71
+ const shards = [];
72
+ for (let s = 0; s < shardCount; s += 1) {
73
+ const shard = node([], {
74
+ initial: emptyStore(),
75
+ name: `shard_${s}`,
76
+ describeKind: "state",
77
+ meta: factMeta("factstore", { shard: s })
78
+ });
79
+ graph.add(shard, { name: `shard_${s}` });
80
+ graph.addDisposer(keepalive(shard));
81
+ shards.push(shard);
82
+ }
83
+ const shardIndexFor = (f) => {
84
+ const key = shardBy(f);
85
+ const n = typeof key === "number" ? key : fnv1a(String(key));
86
+ const idx = (n % shardCount + shardCount) % shardCount;
87
+ return idx;
88
+ };
89
+ const findShardOf = (id) => {
90
+ for (let s = 0; s < shardCount; s += 1) {
91
+ const fs = shards[s].cache;
92
+ if (fs?.byId.has(id)) return s;
93
+ }
94
+ return -1;
95
+ };
96
+ const allFacts = () => {
97
+ const out2 = /* @__PURE__ */ new Map();
98
+ for (const sh of shards) {
99
+ const fs = sh.cache;
100
+ if (!fs) continue;
101
+ for (const [k, v] of fs.byId) out2.set(k, v);
102
+ }
103
+ return out2;
104
+ };
105
+ const commitFragment = (f) => {
106
+ const idx = shardIndexFor(f);
107
+ const cur = shards[idx].cache ?? emptyStore();
108
+ const next = new Map(cur.byId);
109
+ next.set(f.id, f);
110
+ shards[idx].emit({ byId: next });
111
+ };
112
+ const replaceFragment = (id, mut) => {
113
+ const idx = findShardOf(id);
114
+ if (idx < 0) return false;
115
+ const cur = shards[idx].cache;
116
+ const prev = cur.byId.get(id);
117
+ if (!prev) return false;
118
+ const next = new Map(cur.byId);
119
+ next.set(id, mut(prev));
120
+ shards[idx].emit({ byId: next });
121
+ return true;
122
+ };
123
+ const dependentsIndex = node([], {
124
+ initial: /* @__PURE__ */ new Map(),
125
+ name: "dependents_index",
126
+ describeKind: "state",
127
+ meta: factMeta("factstore", { role: "dependents_index" })
128
+ });
129
+ graph.add(dependentsIndex, { name: "dependents_index" });
130
+ graph.addDisposer(keepalive(dependentsIndex));
131
+ const indexFragment = (f, deps) => {
132
+ const cur = dependentsIndex.cache;
133
+ const next = /* @__PURE__ */ new Map();
134
+ for (const [k, v] of cur) next.set(k, [...v]);
135
+ for (const src of deps) {
136
+ const bucket = next.get(src) ?? [];
137
+ if (!bucket.includes(f.id)) bucket.push(f.id);
138
+ next.set(src, bucket);
139
+ }
140
+ dependentsIndex.emit(next);
141
+ };
142
+ const factStore = node(
143
+ shards,
144
+ (batchData, actions, ctx) => {
145
+ void batchData;
146
+ void ctx;
147
+ actions.emit({ byId: allFacts() });
148
+ },
149
+ {
150
+ name: "fact_store",
151
+ describeKind: "derived",
152
+ initial: emptyStore(),
153
+ meta: factMeta("factstore", { role: "read_view" }),
154
+ // F10a: `allFacts()` builds a fresh Map every detector retrigger.
155
+ // Fragments are immutable (replaced wholesale on mutation), so a
156
+ // same-size + per-key-identity check is a sound structural equality
157
+ // that stops `factStore` (and its `review` dependent) from re-firing
158
+ // every cascade wave when nothing actually changed.
159
+ equals: (a, b) => {
160
+ if (a === b) return true;
161
+ if (a.byId.size !== b.byId.size) return false;
162
+ for (const [k, v] of a.byId) {
163
+ if (b.byId.get(k) !== v) return false;
164
+ }
165
+ return true;
166
+ }
167
+ }
168
+ );
169
+ graph.add(factStore, { name: "fact_store" });
170
+ graph.addDisposer(keepalive(factStore));
171
+ const extractOp = node(
172
+ config.admissionFilter ? [config.ingest, config.admissionFilter] : [config.ingest],
173
+ (batchData, actions, ctx) => {
174
+ const f = lastOf(batchData[0], ctx.prevData[0]);
175
+ if (f == null) {
176
+ actions.emit(null);
177
+ return;
178
+ }
179
+ if (config.admissionFilter) {
180
+ const filter = lastOf(batchData[1], ctx.prevData[1]);
181
+ if (filter && !filter(f)) {
182
+ actions.emit(null);
183
+ return;
184
+ }
185
+ }
186
+ const deps = config.extractDependencies(f);
187
+ cascadeIteration = 0;
188
+ processedRoots.delete(f.id);
189
+ commitFragment(f);
190
+ indexFragment(f, deps);
191
+ actions.emit(f);
192
+ },
193
+ {
194
+ name: "extract_op",
195
+ describeKind: "derived",
196
+ meta: factMeta("extract")
197
+ }
198
+ );
199
+ graph.add(extractOp, { name: "extract_op" });
200
+ graph.addDisposer(keepalive(extractOp));
201
+ const invalidationDetector = node(
202
+ [...shards],
203
+ (batchData, actions, ctx) => {
204
+ void batchData;
205
+ void ctx;
206
+ const facts = allFacts();
207
+ const index = dependentsIndex.cache;
208
+ const out2 = [];
209
+ const seen = /* @__PURE__ */ new Set();
210
+ for (const f of facts.values()) {
211
+ const obsolete = f.validTo !== void 0;
212
+ if (!obsolete) continue;
213
+ if (processedRoots.has(f.id)) continue;
214
+ const dependents = index.get(f.id) ?? [];
215
+ for (const dep of dependents) {
216
+ const depFact = facts.get(dep);
217
+ if (!depFact || depFact.validTo !== void 0) continue;
218
+ const k = `${f.id}->${dep}`;
219
+ if (seen.has(k)) continue;
220
+ seen.add(k);
221
+ out2.push({
222
+ factId: dep,
223
+ rootFactId: f.id,
224
+ reason: "obsolete",
225
+ // `obsolete` guard above guarantees `f.validTo` is set.
226
+ rootValidTo: f.validTo,
227
+ iteration: cascadeIteration + 1,
228
+ causalReason: `dependentsIndex[${f.id}] \u2192 ${dep} (obsolete: validTo set)`
229
+ });
230
+ }
231
+ processedRoots.add(f.id);
232
+ }
233
+ if (out2.length === 0) {
234
+ cascadeIteration = 0;
235
+ }
236
+ actions.emit(out2);
237
+ },
238
+ {
239
+ name: "invalidation_detector",
240
+ describeKind: "derived",
241
+ initial: [],
242
+ meta: factMeta("invalidation", { cycle: "cascade" })
243
+ }
244
+ );
245
+ graph.add(invalidationDetector, { name: "invalidation_detector" });
246
+ graph.addDisposer(keepalive(invalidationDetector));
247
+ const cascade = node(
248
+ [invalidationDetector],
249
+ (batchData, actions, ctx) => {
250
+ const evts = lastOf(batchData[0], ctx.prevData[0]) ?? [];
251
+ actions.emit(evts);
252
+ },
253
+ {
254
+ name: "cascade",
255
+ describeKind: "derived",
256
+ initial: [],
257
+ meta: factMeta("cascade_topic", { cycle: "cascade" })
258
+ }
259
+ );
260
+ graph.add(cascade, { name: "cascade" });
261
+ graph.addDisposer(keepalive(cascade));
262
+ const cascadeOverflow = node([], {
263
+ initial: null,
264
+ name: "cascade_overflow",
265
+ describeKind: "state",
266
+ meta: factMeta("cascade_overflow")
267
+ });
268
+ graph.add(cascadeOverflow, { name: "cascade_overflow" });
269
+ graph.addDisposer(keepalive(cascadeOverflow));
270
+ const cascadeProcessor = node(
271
+ [cascade],
272
+ (batchData, actions, ctx) => {
273
+ const evts = lastOf(batchData[0], ctx.prevData[0]) ?? [];
274
+ if (evts.length === 0) {
275
+ actions.emit([]);
276
+ return;
277
+ }
278
+ const byId = /* @__PURE__ */ new Map();
279
+ for (const e of evts) if (!byId.has(e.factId)) byId.set(e.factId, e);
280
+ cascadeIteration += 1;
281
+ if (cascadeIteration > maxIterations) {
282
+ const sample = [...byId.keys()].slice(0, OVERFLOW_SAMPLE_SIZE);
283
+ const rootFactId = evts[0]?.rootFactId ?? "";
284
+ cascadeOverflow.emit({
285
+ droppedCount: byId.size,
286
+ sample,
287
+ rootFactId
288
+ });
289
+ events.append({
290
+ action: "overflow",
291
+ reason: "cascade",
292
+ id: rootFactId,
293
+ t_ns: wallClockNs(),
294
+ seq: bumpCursor(seqCursor)
295
+ });
296
+ actions.emit([]);
297
+ return;
298
+ }
299
+ for (const [id, e] of byId) {
300
+ replaceFragment(
301
+ id,
302
+ (prev) => prev.validTo !== void 0 ? prev : { ...prev, validTo: e.rootValidTo }
303
+ );
304
+ }
305
+ actions.emit([...byId.values()]);
306
+ },
307
+ {
308
+ name: "cascade_processor",
309
+ describeKind: "derived",
310
+ initial: [],
311
+ meta: factMeta("cascade_processor", { cycle: "cascade" })
312
+ }
313
+ );
314
+ graph.add(cascadeProcessor, { name: "cascade_processor" });
315
+ graph.addDisposer(keepalive(cascadeProcessor));
316
+ const review = node(
317
+ [factStore],
318
+ (batchData, actions, ctx) => {
319
+ const fs = lastOf(batchData[0], ctx.prevData[0]);
320
+ if (fs == null) {
321
+ actions.emit(null);
322
+ return;
323
+ }
324
+ for (const f of fs.byId.values()) {
325
+ if (f.confidence < reviewThreshold && f.validTo === void 0) {
326
+ actions.emit({
327
+ factId: f.id,
328
+ confidence: f.confidence,
329
+ threshold: reviewThreshold
330
+ });
331
+ return;
332
+ }
333
+ }
334
+ actions.emit(null);
335
+ },
336
+ {
337
+ name: "review",
338
+ describeKind: "derived",
339
+ initial: null,
340
+ meta: factMeta("review"),
341
+ // F10a: dedupe on the requested factId (null === no request) so a
342
+ // stable low-confidence fact does not re-emit a review every wave.
343
+ equals: (a, b) => (a?.factId ?? null) === (b?.factId ?? null)
344
+ }
345
+ );
346
+ graph.add(review, { name: "review" });
347
+ graph.addDisposer(keepalive(review));
348
+ if (config.outcome) {
349
+ const outcomeProcessor = node(
350
+ config.scoring ? [config.outcome, config.scoring] : [config.outcome],
351
+ (batchData, actions, ctx) => {
352
+ const sig = lastOf(batchData[0], ctx.prevData[0]);
353
+ if (sig == null) {
354
+ actions.emit(null);
355
+ return;
356
+ }
357
+ replaceFragment(sig.factId, (prev) => {
358
+ let nextConf = prev.confidence;
359
+ if (config.scoring) {
360
+ const policy = lastOf(batchData[1], ctx.prevData[1]);
361
+ if (policy) {
362
+ nextConf = policy(prev, makeReadHandle(allFacts()));
363
+ }
364
+ } else {
365
+ nextConf = Math.max(0, Math.min(1, prev.confidence + sig.reward));
366
+ }
367
+ return { ...prev, confidence: nextConf };
368
+ });
369
+ actions.emit(sig);
370
+ },
371
+ {
372
+ name: "outcome_processor",
373
+ describeKind: "derived",
374
+ initial: null,
375
+ meta: factMeta("outcome")
376
+ }
377
+ );
378
+ graph.add(outcomeProcessor, { name: "outcome_processor" });
379
+ graph.addDisposer(keepalive(outcomeProcessor));
380
+ }
381
+ const answer = node(
382
+ config.query ? [config.query, factStore] : [factStore],
383
+ (batchData, actions, ctx) => {
384
+ if (!config.query) {
385
+ actions.emit(null);
386
+ return;
387
+ }
388
+ const q = lastOf(batchData[0], ctx.prevData[0]);
389
+ const fs = lastOf(batchData[1], ctx.prevData[1]);
390
+ if (q == null) {
391
+ actions.emit(null);
392
+ return;
393
+ }
394
+ const store = fs ?? emptyStore();
395
+ let results = [...store.byId.values()].filter((f) => {
396
+ if (q.tags && q.tags.length > 0 && !q.tags.some((t) => f.tags.includes(t))) {
397
+ return false;
398
+ }
399
+ if (q.minConfidence !== void 0 && f.confidence < q.minConfidence) return false;
400
+ if (!currentlyValid(f, q.asOf)) return false;
401
+ return true;
402
+ });
403
+ results.sort((a, b) => b.confidence - a.confidence || Number(b.t_ns - a.t_ns));
404
+ if (q.limit !== void 0) results = results.slice(0, Math.max(0, q.limit));
405
+ actions.emit({ query: q, results });
406
+ },
407
+ {
408
+ name: "answer",
409
+ describeKind: "derived",
410
+ initial: null,
411
+ meta: factMeta("query", { role: "output" })
412
+ }
413
+ );
414
+ graph.add(answer, { name: "answer" });
415
+ graph.addDisposer(keepalive(answer));
416
+ const consolidated = node(
417
+ config.consolidateTrigger ? [config.consolidateTrigger] : [],
418
+ (batchData, actions, ctx) => {
419
+ void batchData;
420
+ void ctx;
421
+ if (!config.consolidateTrigger || !config.consolidate) {
422
+ actions.emit([]);
423
+ return;
424
+ }
425
+ const fragments = config.consolidate(makeReadHandle(allFacts()));
426
+ for (const f of fragments) {
427
+ const deps = config.extractDependencies(f);
428
+ processedRoots.delete(f.id);
429
+ commitFragment(f);
430
+ indexFragment(f, deps);
431
+ events.append({
432
+ action: "consolidate",
433
+ id: f.id,
434
+ t_ns: wallClockNs(),
435
+ seq: bumpCursor(seqCursor)
436
+ });
437
+ }
438
+ actions.emit(fragments);
439
+ },
440
+ {
441
+ name: "consolidated",
442
+ describeKind: "derived",
443
+ initial: [],
444
+ meta: factMeta("consolidator")
445
+ }
446
+ );
447
+ graph.add(consolidated, { name: "consolidated" });
448
+ graph.addDisposer(keepalive(consolidated));
449
+ const ingestAudit = node(
450
+ [extractOp],
451
+ (batchData, actions, ctx) => {
452
+ const f = lastOf(batchData[0], ctx.prevData[0]);
453
+ if (f != null) {
454
+ events.append({
455
+ action: "ingest",
456
+ id: f.id,
457
+ t_ns: wallClockNs(),
458
+ seq: bumpCursor(seqCursor)
459
+ });
460
+ ingestLog?.append(f);
461
+ }
462
+ actions.emit(f ?? null);
463
+ },
464
+ {
465
+ name: "_ingest_audit",
466
+ describeKind: "derived",
467
+ initial: null,
468
+ meta: factMeta("audit")
469
+ }
470
+ );
471
+ graph.add(ingestAudit, { name: "_ingest_audit" });
472
+ graph.addDisposer(keepalive(ingestAudit));
473
+ function itemNode(id) {
474
+ return node(
475
+ [factStore],
476
+ (batchData, actions, ctx) => {
477
+ const fs = lastOf(batchData[0], ctx.prevData[0]);
478
+ actions.emit(fs?.byId.get(id));
479
+ },
480
+ {
481
+ name: `item_${id}`,
482
+ describeKind: "derived",
483
+ meta: factMeta("item")
484
+ }
485
+ );
486
+ }
487
+ const out = Object.assign(graph, {
488
+ shards,
489
+ factStore,
490
+ dependentsIndex,
491
+ answer,
492
+ cascade,
493
+ cascadeOverflow,
494
+ review,
495
+ consolidated,
496
+ events,
497
+ ...ingestLog ? { ingestLog } : {},
498
+ itemNode
499
+ });
500
+ return out;
501
+ }
502
+
503
+ // src/utils/memory/index.ts
504
+ var NS_PER_SEC = 1e9;
505
+ function memoryMeta(kind, extra) {
506
+ return domainMeta("memory", kind, extra);
507
+ }
508
+ function toNode(v, name) {
509
+ if (v instanceof NodeImpl) return v;
510
+ return node2([], { initial: v, ...name ? { name } : void 0 });
511
+ }
512
+ function ageSeconds(now, lastNs) {
513
+ return (now - lastNs) / NS_PER_SEC;
514
+ }
515
+ function cosineSimilarity(a, b) {
516
+ const n = Math.max(a.length, b.length);
517
+ let dot = 0;
518
+ let na = 0;
519
+ let nb = 0;
520
+ for (let i = 0; i < n; i += 1) {
521
+ const av = a[i] ?? 0;
522
+ const bv = b[i] ?? 0;
523
+ dot += av * bv;
524
+ na += av * av;
525
+ nb += bv * bv;
526
+ }
527
+ if (na === 0 || nb === 0) return 0;
528
+ const score = dot / Math.sqrt(na * nb);
529
+ return Number.isFinite(score) ? score : 0;
530
+ }
531
+ function searchResultsEqual(a, b) {
532
+ if (a === b) return true;
533
+ if (a == null || b == null) return false;
534
+ if (a.length !== b.length) return false;
535
+ for (let i = 0; i < a.length; i += 1) {
536
+ const x = a[i];
537
+ const y = b[i];
538
+ if (x.id !== y.id || x.score !== y.score || x.meta !== y.meta) return false;
539
+ }
540
+ return true;
541
+ }
542
+ function rankedEqual(a, b) {
543
+ if (a === b) return true;
544
+ if (a == null || b == null) return false;
545
+ if (a.length !== b.length) return false;
546
+ for (let i = 0; i < a.length; i += 1) {
547
+ const x = a[i];
548
+ const y = b[i];
549
+ if (x.id !== y.id || x.score !== y.score || x.lastAccessNs !== y.lastAccessNs || x.value !== y.value)
550
+ return false;
551
+ }
552
+ return true;
553
+ }
554
+ function collection(name, opts = {}) {
555
+ const maxSize = opts.maxSize;
556
+ const ranked = opts.ranked ?? true;
557
+ const decayRate = ranked ? opts.decayRate ?? 0 : 0;
558
+ const minScore = opts.minScore ?? 0;
559
+ if (maxSize !== void 0 && maxSize < 1) {
560
+ throw new RangeError("collection: maxSize must be >= 1");
561
+ }
562
+ const scoreFnDefault = () => ranked ? 1 : 0;
563
+ const scoreInput = opts.score ?? scoreFnDefault;
564
+ const scoreNode = ranked && scoreInput instanceof NodeImpl ? scoreInput : void 0;
565
+ const readScoreFn = () => {
566
+ if (scoreNode) return scoreNode.cache ?? scoreFnDefault;
567
+ return scoreInput;
568
+ };
569
+ const graph = new Graph2(name);
570
+ const retentionScore = (_k, v) => ranked ? decay(v.baseScore, ageSeconds(monotonicNs(), v.lastAccessNs), decayRate, minScore) : v.lastAccessNs;
571
+ const items = reactiveMap({
572
+ name: "items",
573
+ ...maxSize !== void 0 ? { retention: { score: retentionScore, maxSize } } : {}
574
+ });
575
+ graph.add(items.entries, { name: "items" });
576
+ let refreshTick;
577
+ if (ranked && decayRate > 0) {
578
+ const intervalMs = opts.refreshIntervalMs ?? Math.max(1, 1e3 * Math.LN2 / (10 * decayRate));
579
+ const tickCounter = fromTimer(intervalMs, { period: intervalMs });
580
+ refreshTick = node2(
581
+ [tickCounter],
582
+ (_batchData, actions) => {
583
+ actions.emit(monotonicNs());
584
+ },
585
+ {
586
+ name: "refresh_tick_ns",
587
+ describeKind: "derived",
588
+ initial: monotonicNs(),
589
+ meta: memoryMeta("clock")
590
+ }
591
+ );
592
+ graph.add(refreshTick, { name: "refresh_tick_ns" });
593
+ }
594
+ let rankedNode;
595
+ if (ranked) {
596
+ const rankedDeps = [items.entries];
597
+ if (refreshTick) rankedDeps.push(refreshTick);
598
+ if (scoreNode) rankedDeps.push(scoreNode);
599
+ rankedNode = node2(
600
+ rankedDeps,
601
+ (batchData, actions, ctx) => {
602
+ const values = batchData.map(
603
+ (batch, i) => batch != null && batch.length > 0 ? batch.at(-1) : ctx.prevData[i]
604
+ );
605
+ const snapshot = values[0];
606
+ let now;
607
+ if (refreshTick) {
608
+ const tickValue = values[1];
609
+ now = typeof tickValue === "number" ? tickValue : monotonicNs();
610
+ } else {
611
+ now = monotonicNs();
612
+ }
613
+ if (!snapshot || snapshot.size === 0) {
614
+ actions.emit([]);
615
+ return;
616
+ }
617
+ const out2 = [];
618
+ for (const entry of snapshot.values()) {
619
+ out2.push({
620
+ ...entry,
621
+ score: decay(entry.baseScore, ageSeconds(now, entry.lastAccessNs), decayRate, minScore)
622
+ });
623
+ }
624
+ out2.sort((a, b) => b.score - a.score || b.lastAccessNs - a.lastAccessNs);
625
+ actions.emit(out2);
626
+ },
627
+ {
628
+ name: "ranked",
629
+ describeKind: "derived",
630
+ equals: rankedEqual,
631
+ meta: memoryMeta("ranked")
632
+ }
633
+ );
634
+ graph.add(rankedNode, { name: "ranked" });
635
+ } else {
636
+ rankedNode = node2([], {
637
+ initial: [],
638
+ name: "ranked",
639
+ describeKind: "state",
640
+ meta: memoryMeta("ranked_disabled")
641
+ });
642
+ graph.add(rankedNode, { name: "ranked" });
643
+ }
644
+ const size = node2(
645
+ [items.entries],
646
+ (batchData, actions, ctx) => {
647
+ const data = batchData.map(
648
+ (batch, i) => batch != null && batch.length > 0 ? batch.at(-1) : ctx.prevData[i]
649
+ );
650
+ const snapshot = data[0];
651
+ actions.emit((snapshot ?? /* @__PURE__ */ new Map()).size);
652
+ },
653
+ {
654
+ name: "size",
655
+ describeKind: "derived",
656
+ initial: 0,
657
+ meta: memoryMeta("size")
658
+ }
659
+ );
660
+ graph.add(size, { name: "size" });
661
+ graph.addDisposer(keepalive2(size));
662
+ const events = createAuditLog({
663
+ name: "events",
664
+ retainedLimit: 1024,
665
+ graph
666
+ });
667
+ const seqCursor = registerCursor(graph, "seq", 0);
668
+ const upsertImpl = (id, value, _opts) => {
669
+ const now = monotonicNs();
670
+ const prev = items.get(id);
671
+ const baseScore = _opts?.score ?? readScoreFn()(value);
672
+ items.set(id, {
673
+ id,
674
+ value,
675
+ baseScore,
676
+ createdAtNs: prev?.createdAtNs ?? now,
677
+ lastAccessNs: now
678
+ });
679
+ };
680
+ const removeImpl = (id) => {
681
+ if (!items.has(id)) return;
682
+ items.delete(id);
683
+ };
684
+ const clearImpl = () => {
685
+ if (items.size === 0) return;
686
+ items.clear();
687
+ };
688
+ const rescoreImpl = () => {
689
+ if (!ranked) return;
690
+ const fn = readScoreFn();
691
+ const snapshot = items.entries.cache;
692
+ if (!snapshot || snapshot.size === 0) return;
693
+ const updates = [];
694
+ for (const entry of snapshot.values()) {
695
+ updates.push([entry.id, { ...entry, baseScore: fn(entry.value) }]);
696
+ }
697
+ items.setMany(updates);
698
+ };
699
+ const upsert = mutate(upsertImpl, {
700
+ frame: "inline",
701
+ log: events,
702
+ seq: seqCursor,
703
+ onSuccessRecord: ([id], _r, m) => ({ action: "upsert", id, t_ns: m.t_ns, seq: m.seq })
704
+ });
705
+ const remove = mutate(removeImpl, {
706
+ frame: "inline",
707
+ log: events,
708
+ seq: seqCursor,
709
+ onSuccessRecord: ([id], _r, m) => ({ action: "remove", id, t_ns: m.t_ns, seq: m.seq })
710
+ });
711
+ const clear = mutate(clearImpl, {
712
+ frame: "inline",
713
+ log: events,
714
+ seq: seqCursor,
715
+ onSuccessRecord: (_args, _r, m) => ({ action: "clear", t_ns: m.t_ns, seq: m.seq })
716
+ });
717
+ const rescore = mutate(rescoreImpl, {
718
+ frame: "inline",
719
+ log: events,
720
+ seq: seqCursor,
721
+ onSuccessRecord: (_args, _r, m) => ({ action: "rescore", t_ns: m.t_ns, seq: m.seq })
722
+ });
723
+ function itemNode(id) {
724
+ const idN = toNode(id, "id");
725
+ return node2(
726
+ [items.entries, idN],
727
+ (batchData, actions, ctx) => {
728
+ const data = batchData.map(
729
+ (batch, i) => batch != null && batch.length > 0 ? batch.at(-1) : ctx.prevData[i]
730
+ );
731
+ const map = data[0];
732
+ const key = data[1];
733
+ actions.emit(map?.get(key));
734
+ },
735
+ {
736
+ describeKind: "derived",
737
+ meta: memoryMeta("collection_item")
738
+ }
739
+ );
740
+ }
741
+ function hasNode(id) {
742
+ const idN = toNode(id, "id");
743
+ return node2(
744
+ [items.entries, idN],
745
+ (batchData, actions, ctx) => {
746
+ const data = batchData.map(
747
+ (batch, i) => batch != null && batch.length > 0 ? batch.at(-1) : ctx.prevData[i]
748
+ );
749
+ const map = data[0];
750
+ const key = data[1];
751
+ actions.emit(map?.has(key) ?? false);
752
+ },
753
+ {
754
+ describeKind: "derived",
755
+ meta: memoryMeta("collection_has")
756
+ }
757
+ );
758
+ }
759
+ const out = Object.assign(graph, {
760
+ events,
761
+ items: items.entries,
762
+ ranked: rankedNode,
763
+ size,
764
+ upsert,
765
+ remove,
766
+ clear,
767
+ rescore,
768
+ itemNode,
769
+ hasNode
770
+ });
771
+ return out;
772
+ }
773
+ function vectorIndex(opts = {}) {
774
+ const backend = opts.backend ?? "flat";
775
+ const dimension = opts.dimension;
776
+ const strictDimension = opts.strictDimension ?? true;
777
+ const maxSize = opts.maxSize;
778
+ const userRetentionScore = opts.retentionScore;
779
+ let hnsw;
780
+ if (backend === "hnsw") {
781
+ hnsw = opts.hnswFactory?.();
782
+ if (!hnsw) {
783
+ throw new Error(
784
+ 'vectorIndex backend "hnsw" requires an optional dependency adapter; install your HNSW package and provide `hnswFactory`.'
785
+ );
786
+ }
787
+ }
788
+ const graph = new Graph2(opts.name ?? "vector_index");
789
+ let inferredDimension;
790
+ function assertDimension(vector) {
791
+ if (dimension !== void 0) {
792
+ if (vector.length !== dimension) {
793
+ throw new RangeError(
794
+ `vector dimension mismatch: expected ${dimension}, got ${vector.length}`
795
+ );
796
+ }
797
+ return;
798
+ }
799
+ if (!strictDimension) return;
800
+ if (inferredDimension === void 0) {
801
+ inferredDimension = vector.length;
802
+ return;
803
+ }
804
+ if (vector.length !== inferredDimension) {
805
+ throw new RangeError(
806
+ `vector dimension mismatch: inferred ${inferredDimension} from first upsert, got ${vector.length}. Pass \`strictDimension: false\` to opt into zero-pad behavior, or set an explicit \`dimension\`.`
807
+ );
808
+ }
809
+ }
810
+ const baseRetentionScore = userRetentionScore ?? ((r) => r.upsertedAtNs);
811
+ let clearInProgress = false;
812
+ const events = createAuditLog({
813
+ name: "events",
814
+ retainedLimit: 1024,
815
+ graph
816
+ });
817
+ const seqCursor = registerCursor(graph, "seq", 0);
818
+ const entries = reactiveMap({
819
+ name: "entries",
820
+ ...maxSize !== void 0 ? {
821
+ retention: {
822
+ score: (_k, v) => baseRetentionScore(v),
823
+ maxSize,
824
+ onArchive: (key) => {
825
+ if (clearInProgress) return;
826
+ if (backend === "hnsw") hnsw.remove(key);
827
+ events.append({
828
+ action: "evict",
829
+ id: key,
830
+ t_ns: wallClockNs2(),
831
+ seq: bumpCursor(seqCursor)
832
+ });
833
+ }
834
+ }
835
+ } : {}
836
+ });
837
+ graph.add(entries.entries, { name: "entries" });
838
+ graph.addDisposer(keepalive2(entries.entries));
839
+ if (hnsw?.dispose) {
840
+ const disposeAdapter = hnsw.dispose.bind(hnsw);
841
+ graph.addDisposer(() => disposeAdapter());
842
+ }
843
+ const upsertImpl = (id, vector, meta) => {
844
+ assertDimension(vector);
845
+ if (backend === "hnsw") hnsw.upsert(id, vector, meta);
846
+ const copiedMeta = (() => {
847
+ if (meta === void 0) return void 0;
848
+ if (meta === null || typeof meta !== "object") return meta;
849
+ return Array.isArray(meta) ? [...meta] : { ...meta };
850
+ })();
851
+ const record = {
852
+ id,
853
+ vector: [...vector],
854
+ ...copiedMeta !== void 0 ? { meta: copiedMeta } : {},
855
+ upsertedAtNs: monotonicNs()
856
+ };
857
+ entries.set(id, record);
858
+ };
859
+ const removeImpl = (id) => {
860
+ if (!entries.has(id)) return;
861
+ if (backend === "hnsw") hnsw.remove(id);
862
+ entries.delete(id);
863
+ };
864
+ const clearImpl = () => {
865
+ if (entries.size === 0) return;
866
+ clearInProgress = true;
867
+ try {
868
+ entries.clear();
869
+ if (backend === "hnsw") hnsw.clear();
870
+ } finally {
871
+ clearInProgress = false;
872
+ }
873
+ inferredDimension = void 0;
874
+ };
875
+ const reindexImpl = () => {
876
+ if (backend !== "hnsw") return;
877
+ const snapshot = entries.entries.cache;
878
+ if (!snapshot) return;
879
+ hnsw.clear();
880
+ for (const r of snapshot.values()) {
881
+ hnsw.upsert(r.id, r.vector, r.meta);
882
+ }
883
+ };
884
+ const upsert = mutate(upsertImpl, {
885
+ frame: "inline",
886
+ log: events,
887
+ freeze: false,
888
+ seq: seqCursor,
889
+ onSuccessRecord: ([id], _r, m) => ({ action: "upsert", id, t_ns: m.t_ns, seq: m.seq })
890
+ });
891
+ const remove = mutate(removeImpl, {
892
+ frame: "inline",
893
+ log: events,
894
+ seq: seqCursor,
895
+ onSuccessRecord: ([id], _r, m) => ({ action: "remove", id, t_ns: m.t_ns, seq: m.seq })
896
+ });
897
+ const clear = mutate(clearImpl, {
898
+ frame: "inline",
899
+ log: events,
900
+ seq: seqCursor,
901
+ onSuccessRecord: (_args, _r, m) => ({ action: "clear", t_ns: m.t_ns, seq: m.seq })
902
+ });
903
+ const reindex = mutate(reindexImpl, {
904
+ frame: "inline",
905
+ log: events,
906
+ seq: seqCursor,
907
+ onSuccessRecord: (_args, _r, m) => ({ action: "reindex", t_ns: m.t_ns, seq: m.seq })
908
+ });
909
+ function searchNode(query, k = 5) {
910
+ const kN = toNode(k, "k");
911
+ return node2(
912
+ [entries.entries, query, kN],
913
+ (batchData, actions, ctx) => {
914
+ const values = batchData.map(
915
+ (batch, i) => batch != null && batch.length > 0 ? batch.at(-1) : ctx.prevData[i]
916
+ );
917
+ const snapshot = values[0];
918
+ const q = values[1];
919
+ const kRaw = values[2];
920
+ const kVal = Number.isFinite(kRaw) ? Math.max(0, Math.floor(kRaw)) : 0;
921
+ if (!snapshot || snapshot.size === 0 || kVal <= 0) {
922
+ actions.emit([]);
923
+ return;
924
+ }
925
+ if (q == null || q.length === 0) {
926
+ actions.emit([]);
927
+ return;
928
+ }
929
+ const expectedDim = dimension ?? (strictDimension ? inferredDimension : void 0);
930
+ if (expectedDim !== void 0 && q.length !== expectedDim) {
931
+ actions.emit([]);
932
+ return;
933
+ }
934
+ if (backend === "hnsw") {
935
+ const adapterResults = hnsw.search(q, kVal);
936
+ actions.emit([...adapterResults]);
937
+ return;
938
+ }
939
+ const ranked = [...snapshot.values()].map((row) => {
940
+ const result = {
941
+ id: row.id,
942
+ score: cosineSimilarity(q, row.vector),
943
+ ...row.meta !== void 0 ? { meta: row.meta } : {}
944
+ };
945
+ return result;
946
+ }).sort((a, b) => b.score - a.score).slice(0, kVal);
947
+ actions.emit(ranked);
948
+ },
949
+ {
950
+ describeKind: "derived",
951
+ // A1: include `score` in equality. The previous id-only
952
+ // comparator suppressed re-emissions when the same set of
953
+ // IDs/order had different scores (re-upsert with new
954
+ // vector; query change preserving ranking order).
955
+ equals: (a, b) => searchResultsEqual(a, b),
956
+ meta: memoryMeta("vector_search")
957
+ }
958
+ );
959
+ }
960
+ const out = Object.assign(graph, {
961
+ backend,
962
+ events,
963
+ entries: entries.entries,
964
+ upsert,
965
+ remove,
966
+ clear,
967
+ reindex,
968
+ searchNode
969
+ });
970
+ return out;
971
+ }
972
+ var TRIPLE_SEP = "\0";
973
+ function tripleKey(from, to, relation) {
974
+ return `${from}${TRIPLE_SEP}${to}${TRIPLE_SEP}${relation}`;
975
+ }
976
+ function buildAdjacency(edges, side) {
977
+ if (!edges || edges.size === 0) return /* @__PURE__ */ new Map();
978
+ const buckets = /* @__PURE__ */ new Map();
979
+ for (const edge of edges.values()) {
980
+ const key = side === "from" ? edge.from : edge.to;
981
+ let bucket = buckets.get(key);
982
+ if (!bucket) {
983
+ bucket = [];
984
+ buckets.set(key, bucket);
985
+ }
986
+ bucket.push(edge);
987
+ }
988
+ const out = /* @__PURE__ */ new Map();
989
+ for (const [key, bucket] of buckets) out.set(key, Object.freeze(bucket));
990
+ return out;
991
+ }
992
+ function adjacencyEqual(a, b) {
993
+ if (a === b) return true;
994
+ if (a == null || b == null) return false;
995
+ if (a.size !== b.size) return false;
996
+ for (const [k, av] of a) {
997
+ const bv = b.get(k);
998
+ if (!bv || av.length !== bv.length) return false;
999
+ for (let i = 0; i < av.length; i += 1) {
1000
+ const ae = av[i];
1001
+ const be = bv[i];
1002
+ if (ae.from !== be.from || ae.to !== be.to || ae.relation !== be.relation || ae.weight !== be.weight)
1003
+ return false;
1004
+ }
1005
+ }
1006
+ return true;
1007
+ }
1008
+ function knowledgeGraph(name, opts = {}) {
1009
+ const orphanGC = opts.orphanGC ?? "keep";
1010
+ if (opts.entitiesMaxSize !== void 0 && opts.entitiesMaxSize < 1) {
1011
+ throw new RangeError("knowledgeGraph: entitiesMaxSize must be >= 1");
1012
+ }
1013
+ if (opts.edgesMaxSize !== void 0 && opts.edgesMaxSize < 1) {
1014
+ throw new RangeError("knowledgeGraph: edgesMaxSize must be >= 1");
1015
+ }
1016
+ const graph = new Graph2(name);
1017
+ const entitiesMap = reactiveMap({
1018
+ name: "entities",
1019
+ ...opts.entitiesMaxSize !== void 0 ? { maxSize: opts.entitiesMaxSize } : {}
1020
+ });
1021
+ const edgesMap = reactiveMap({
1022
+ name: "edges",
1023
+ ...opts.edgesMaxSize !== void 0 ? { maxSize: opts.edgesMaxSize } : {}
1024
+ });
1025
+ graph.add(entitiesMap.entries, { name: "entities" });
1026
+ graph.add(edgesMap.entries, { name: "edges" });
1027
+ const adjacencyOut = node2(
1028
+ [edgesMap.entries],
1029
+ (batchData, actions, ctx) => {
1030
+ const data = batchData.map(
1031
+ (batch, i) => batch != null && batch.length > 0 ? batch.at(-1) : ctx.prevData[i]
1032
+ );
1033
+ const snapshot = data[0];
1034
+ actions.emit(buildAdjacency(snapshot, "from"));
1035
+ },
1036
+ {
1037
+ name: "adjacencyOut",
1038
+ describeKind: "derived",
1039
+ initial: /* @__PURE__ */ new Map(),
1040
+ equals: adjacencyEqual,
1041
+ meta: memoryMeta("adjacency_out")
1042
+ }
1043
+ );
1044
+ const adjacencyIn = node2(
1045
+ [edgesMap.entries],
1046
+ (batchData, actions, ctx) => {
1047
+ const data = batchData.map(
1048
+ (batch, i) => batch != null && batch.length > 0 ? batch.at(-1) : ctx.prevData[i]
1049
+ );
1050
+ const snapshot = data[0];
1051
+ actions.emit(buildAdjacency(snapshot, "to"));
1052
+ },
1053
+ {
1054
+ name: "adjacencyIn",
1055
+ describeKind: "derived",
1056
+ initial: /* @__PURE__ */ new Map(),
1057
+ equals: adjacencyEqual,
1058
+ meta: memoryMeta("adjacency_in")
1059
+ }
1060
+ );
1061
+ graph.add(adjacencyOut, { name: "adjacencyOut" });
1062
+ graph.add(adjacencyIn, { name: "adjacencyIn" });
1063
+ graph.addDisposer(keepalive2(adjacencyOut));
1064
+ graph.addDisposer(keepalive2(adjacencyIn));
1065
+ const entityCount = node2(
1066
+ [entitiesMap.entries],
1067
+ (batchData, actions, ctx) => {
1068
+ const data = batchData.map(
1069
+ (batch, i) => batch != null && batch.length > 0 ? batch.at(-1) : ctx.prevData[i]
1070
+ );
1071
+ const m = data[0];
1072
+ actions.emit((m ?? /* @__PURE__ */ new Map()).size);
1073
+ },
1074
+ { name: "entityCount", describeKind: "derived", initial: 0, meta: memoryMeta("entity_count") }
1075
+ );
1076
+ const edgeCount = node2(
1077
+ [edgesMap.entries],
1078
+ (batchData, actions, ctx) => {
1079
+ const data = batchData.map(
1080
+ (batch, i) => batch != null && batch.length > 0 ? batch.at(-1) : ctx.prevData[i]
1081
+ );
1082
+ const m = data[0];
1083
+ actions.emit((m ?? /* @__PURE__ */ new Map()).size);
1084
+ },
1085
+ { name: "edgeCount", describeKind: "derived", initial: 0, meta: memoryMeta("edge_count") }
1086
+ );
1087
+ graph.add(entityCount, { name: "entityCount" });
1088
+ graph.add(edgeCount, { name: "edgeCount" });
1089
+ graph.addDisposer(keepalive2(entityCount));
1090
+ graph.addDisposer(keepalive2(edgeCount));
1091
+ const events = createAuditLog({
1092
+ name: "events",
1093
+ retainedLimit: 1024,
1094
+ graph
1095
+ });
1096
+ const seqCursor = registerCursor(graph, "seq", 0);
1097
+ function entityHasReferences(id) {
1098
+ const out2 = adjacencyOut.cache;
1099
+ const inb = adjacencyIn.cache;
1100
+ if ((out2?.get(id)?.length ?? 0) > 0) return true;
1101
+ if ((inb?.get(id)?.length ?? 0) > 0) return true;
1102
+ return false;
1103
+ }
1104
+ function applyOrphanGC(candidates) {
1105
+ if (orphanGC !== "remove") return;
1106
+ for (const candidate of candidates) {
1107
+ if (!entitiesMap.has(candidate)) continue;
1108
+ if (entityHasReferences(candidate)) continue;
1109
+ entitiesMap.delete(candidate);
1110
+ events.append({
1111
+ action: "orphanRemove",
1112
+ id: candidate,
1113
+ t_ns: wallClockNs2(),
1114
+ seq: bumpCursor(seqCursor)
1115
+ });
1116
+ }
1117
+ }
1118
+ const upsertEntityImpl = (id, value) => {
1119
+ entitiesMap.set(id, value);
1120
+ };
1121
+ const removeEntityImpl = (id) => {
1122
+ const snapshot = edgesMap.entries.cache;
1123
+ const cascadedNeighbors = /* @__PURE__ */ new Set();
1124
+ if (snapshot) {
1125
+ const toDrop = [];
1126
+ for (const [key, edge] of snapshot) {
1127
+ if (edge.from === id || edge.to === id) {
1128
+ toDrop.push(key);
1129
+ if (edge.from !== id) cascadedNeighbors.add(edge.from);
1130
+ if (edge.to !== id) cascadedNeighbors.add(edge.to);
1131
+ }
1132
+ }
1133
+ if (toDrop.length > 0) edgesMap.deleteMany(toDrop);
1134
+ }
1135
+ if (entitiesMap.has(id)) entitiesMap.delete(id);
1136
+ applyOrphanGC([...cascadedNeighbors]);
1137
+ };
1138
+ const linkImpl = (from, to, relation, weight = 1) => {
1139
+ edgesMap.set(tripleKey(from, to, relation), { from, to, relation, weight });
1140
+ };
1141
+ const unlinkImpl = (from, to, relation) => {
1142
+ if (relation !== void 0) {
1143
+ edgesMap.delete(tripleKey(from, to, relation));
1144
+ } else {
1145
+ const snapshot = edgesMap.entries.cache;
1146
+ if (!snapshot) return;
1147
+ const toDrop = [];
1148
+ for (const [key, edge] of snapshot) {
1149
+ if (edge.from === from && edge.to === to) toDrop.push(key);
1150
+ }
1151
+ if (toDrop.length > 0) edgesMap.deleteMany(toDrop);
1152
+ }
1153
+ applyOrphanGC([from, to]);
1154
+ };
1155
+ const upsertEntity = mutate(upsertEntityImpl, {
1156
+ frame: "inline",
1157
+ log: events,
1158
+ seq: seqCursor,
1159
+ onSuccessRecord: ([id], _r, m) => ({
1160
+ action: "upsertEntity",
1161
+ id,
1162
+ t_ns: m.t_ns,
1163
+ seq: m.seq
1164
+ })
1165
+ });
1166
+ const removeEntity = mutate(removeEntityImpl, {
1167
+ frame: "inline",
1168
+ log: events,
1169
+ seq: seqCursor,
1170
+ onSuccessRecord: ([id], _r, m) => ({
1171
+ action: "removeEntity",
1172
+ id,
1173
+ t_ns: m.t_ns,
1174
+ seq: m.seq
1175
+ })
1176
+ });
1177
+ const link = mutate(linkImpl, {
1178
+ frame: "inline",
1179
+ log: events,
1180
+ seq: seqCursor,
1181
+ onSuccessRecord: ([from, to, relation, weight], _r, m) => ({
1182
+ action: "link",
1183
+ from,
1184
+ to,
1185
+ relation,
1186
+ weight: weight ?? 1,
1187
+ t_ns: m.t_ns,
1188
+ seq: m.seq
1189
+ })
1190
+ });
1191
+ const unlink = mutate(unlinkImpl, {
1192
+ frame: "inline",
1193
+ log: events,
1194
+ seq: seqCursor,
1195
+ onSuccessRecord: ([from, to, relation], _r, m) => ({
1196
+ action: "unlink",
1197
+ from,
1198
+ to,
1199
+ ...relation !== void 0 ? { relation } : {},
1200
+ t_ns: m.t_ns,
1201
+ seq: m.seq
1202
+ })
1203
+ });
1204
+ function relatedNode(id, relation) {
1205
+ const idN = toNode(id, "id");
1206
+ const relN = relation !== void 0 ? toNode(relation, "relation") : void 0;
1207
+ const deps = relN ? [adjacencyOut, adjacencyIn, idN, relN] : [adjacencyOut, adjacencyIn, idN];
1208
+ return node2(
1209
+ deps,
1210
+ (batchData, actions, ctx) => {
1211
+ const values = batchData.map(
1212
+ (batch, i) => batch != null && batch.length > 0 ? batch.at(-1) : ctx.prevData[i]
1213
+ );
1214
+ const out2 = values[0];
1215
+ const inb = values[1];
1216
+ const key = values[2];
1217
+ const rel = relN ? values[3] : void 0;
1218
+ const outE = out2?.get(key) ?? [];
1219
+ const inE = inb?.get(key) ?? [];
1220
+ const seen = /* @__PURE__ */ new Set();
1221
+ const acc = [];
1222
+ for (const edge of outE) {
1223
+ const k = tripleKey(edge.from, edge.to, edge.relation);
1224
+ if (seen.has(k)) continue;
1225
+ if (rel !== void 0 && edge.relation !== rel) continue;
1226
+ seen.add(k);
1227
+ acc.push(edge);
1228
+ }
1229
+ for (const edge of inE) {
1230
+ const k = tripleKey(edge.from, edge.to, edge.relation);
1231
+ if (seen.has(k)) continue;
1232
+ if (rel !== void 0 && edge.relation !== rel) continue;
1233
+ seen.add(k);
1234
+ acc.push(edge);
1235
+ }
1236
+ actions.emit(acc);
1237
+ },
1238
+ {
1239
+ describeKind: "derived",
1240
+ equals: (a, b) => {
1241
+ const av = a;
1242
+ const bv = b;
1243
+ if (av === bv) return true;
1244
+ if (av == null || bv == null) return false;
1245
+ if (av.length !== bv.length) return false;
1246
+ for (let i = 0; i < av.length; i += 1) {
1247
+ const x = av[i];
1248
+ const y = bv[i];
1249
+ if (x.from !== y.from || x.to !== y.to || x.relation !== y.relation || x.weight !== y.weight)
1250
+ return false;
1251
+ }
1252
+ return true;
1253
+ },
1254
+ meta: memoryMeta("related")
1255
+ }
1256
+ );
1257
+ }
1258
+ const out = Object.assign(graph, {
1259
+ events,
1260
+ entities: entitiesMap.entries,
1261
+ edges: edgesMap.entries,
1262
+ adjacencyOut,
1263
+ adjacencyIn,
1264
+ entityCount,
1265
+ edgeCount,
1266
+ upsertEntity,
1267
+ removeEntity,
1268
+ link,
1269
+ unlink,
1270
+ relatedNode
1271
+ });
1272
+ return out;
1273
+ }
1274
+
1275
+ export {
1276
+ reactiveFactStore,
1277
+ cosineSimilarity,
1278
+ collection,
1279
+ vectorIndex,
1280
+ knowledgeGraph
1281
+ };
1282
+ //# sourceMappingURL=chunk-ZVXXDWIB.js.map