@graphrefly/graphrefly 0.27.0 → 0.29.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 (428) hide show
  1. package/dist/backoff-HPZMEZNF.js +1 -0
  2. package/dist/cascading-Bp99ckMJ.d.ts +180 -0
  3. package/dist/cascading-CcAgRacD.d.cts +180 -0
  4. package/dist/chunk-22F4K3G7.js +1 -0
  5. package/dist/chunk-22SVXUPB.js +64 -0
  6. package/dist/chunk-2GQREQ6C.js +1 -0
  7. package/dist/chunk-3JXNEPCD.js +2 -0
  8. package/dist/chunk-4JJCCD5S.js +2 -0
  9. package/dist/chunk-4OFIQ66T.js +1 -0
  10. package/dist/chunk-4V4C7K56.js +1 -0
  11. package/dist/chunk-4VVTGLXJ.js +1 -0
  12. package/dist/chunk-567NWZ3T.js +1 -0
  13. package/dist/chunk-5JDE5JHE.js +1 -0
  14. package/dist/chunk-5QDBSZBV.js +1 -0
  15. package/dist/chunk-5Z4HDCO6.js +1 -0
  16. package/dist/chunk-63FFOHLA.js +1 -0
  17. package/dist/chunk-6QZNQS5B.js +1 -0
  18. package/dist/chunk-7JDLFI6N.js +1 -0
  19. package/dist/chunk-7TDOES3L.js +1 -0
  20. package/dist/chunk-A7IAQQ63.js +1 -0
  21. package/dist/chunk-AMG5VBHW.js +1 -0
  22. package/dist/chunk-AUY2YKCO.js +1 -0
  23. package/dist/chunk-AV3PIDFQ.js +1 -0
  24. package/dist/chunk-BA5URFYW.js +1 -0
  25. package/dist/chunk-BKPLTBL5.js +1 -0
  26. package/dist/chunk-BZP5T4X6.js +1 -0
  27. package/dist/chunk-CK2E7BTU.js +1 -0
  28. package/dist/chunk-CSJE2EKV.js +1 -0
  29. package/dist/chunk-E3AXATVZ.js +9 -0
  30. package/dist/chunk-ESMPEKEV.js +1 -0
  31. package/dist/chunk-GJR3P6JG.js +1 -0
  32. package/dist/chunk-GNCBXARM.js +1 -0
  33. package/dist/chunk-GPW2V3RE.js +1 -0
  34. package/dist/chunk-HSIEYSDY.js +1 -0
  35. package/dist/chunk-I6VIH3VA.js +1 -0
  36. package/dist/chunk-ISCENNXS.js +1 -0
  37. package/dist/chunk-JYOUF6UQ.js +1 -0
  38. package/dist/chunk-KASHOCF5.js +1 -0
  39. package/dist/chunk-LGSNR4LU.js +5 -0
  40. package/dist/chunk-LVGBLZM2.js +1 -0
  41. package/dist/chunk-MGKAO4EK.js +7 -0
  42. package/dist/chunk-NSG4C6BF.js +23 -0
  43. package/dist/chunk-OL33ZI6R.js +1 -0
  44. package/dist/chunk-PCZ35NXD.js +78 -0
  45. package/dist/chunk-PGMUCUHG.js +43 -0
  46. package/dist/chunk-QYADASLV.js +1 -0
  47. package/dist/chunk-RD52SNH2.js +1 -0
  48. package/dist/chunk-SLMYTGTU.js +1 -0
  49. package/dist/chunk-TWMEGG45.js +1 -0
  50. package/dist/chunk-UVJQ35G2.js +1 -0
  51. package/dist/chunk-VGTCGNRX.js +18 -0
  52. package/dist/chunk-VIMF6LGM.js +1 -0
  53. package/dist/chunk-VJLMUKOI.js +1 -0
  54. package/dist/chunk-VWPRPPKR.js +1 -0
  55. package/dist/chunk-W4TSQ6RJ.js +1 -0
  56. package/dist/chunk-WM7H7WTY.js +3 -0
  57. package/dist/chunk-Y32RJO24.js +1 -0
  58. package/dist/chunk-Y53B6NS4.js +1 -0
  59. package/dist/compat/index.cjs +15 -7656
  60. package/dist/compat/index.d.cts +15 -14
  61. package/dist/compat/index.d.ts +15 -14
  62. package/dist/compat/index.js +1 -50
  63. package/dist/compat/jotai/index.cjs +1 -2048
  64. package/dist/compat/jotai/index.d.cts +2 -2
  65. package/dist/compat/jotai/index.d.ts +2 -2
  66. package/dist/compat/jotai/index.js +1 -9
  67. package/dist/compat/nanostores/index.cjs +1 -2175
  68. package/dist/compat/nanostores/index.d.cts +2 -2
  69. package/dist/compat/nanostores/index.d.ts +2 -2
  70. package/dist/compat/nanostores/index.js +1 -23
  71. package/dist/compat/nestjs/index.cjs +15 -6782
  72. package/dist/compat/nestjs/index.d.cts +7 -6
  73. package/dist/compat/nestjs/index.d.ts +7 -6
  74. package/dist/compat/nestjs/index.js +1 -83
  75. package/dist/compat/react/index.cjs +1 -141
  76. package/dist/compat/react/index.d.cts +2 -2
  77. package/dist/compat/react/index.d.ts +2 -2
  78. package/dist/compat/react/index.js +1 -12
  79. package/dist/compat/solid/index.cjs +1 -128
  80. package/dist/compat/solid/index.d.cts +2 -2
  81. package/dist/compat/solid/index.d.ts +2 -2
  82. package/dist/compat/solid/index.js +1 -12
  83. package/dist/compat/svelte/index.cjs +1 -131
  84. package/dist/compat/svelte/index.d.cts +2 -2
  85. package/dist/compat/svelte/index.d.ts +2 -2
  86. package/dist/compat/svelte/index.js +1 -12
  87. package/dist/compat/vue/index.cjs +1 -146
  88. package/dist/compat/vue/index.d.cts +2 -2
  89. package/dist/compat/vue/index.d.ts +2 -2
  90. package/dist/compat/vue/index.js +1 -12
  91. package/dist/compat/zustand/index.cjs +7 -4931
  92. package/dist/compat/zustand/index.d.cts +5 -5
  93. package/dist/compat/zustand/index.d.ts +5 -5
  94. package/dist/compat/zustand/index.js +1 -12
  95. package/dist/composite-BL-llbnE.d.ts +69 -0
  96. package/dist/composite-Dze--DaA.d.cts +69 -0
  97. package/dist/core/index.cjs +1 -2271
  98. package/dist/core/index.d.cts +4 -4
  99. package/dist/core/index.d.ts +4 -4
  100. package/dist/core/index.js +1 -110
  101. package/dist/extra/browser.cjs +1 -0
  102. package/dist/extra/browser.d.cts +3 -0
  103. package/dist/extra/browser.d.ts +3 -0
  104. package/dist/extra/browser.js +1 -0
  105. package/dist/extra/index.cjs +24 -9971
  106. package/dist/extra/index.d.cts +13 -6
  107. package/dist/extra/index.d.ts +13 -6
  108. package/dist/extra/index.js +1 -381
  109. package/dist/extra/node.cjs +3 -0
  110. package/dist/extra/node.d.cts +81 -0
  111. package/dist/extra/node.d.ts +81 -0
  112. package/dist/extra/node.js +2 -0
  113. package/dist/extra/operators.cjs +1 -0
  114. package/dist/extra/operators.d.cts +910 -0
  115. package/dist/extra/operators.d.ts +910 -0
  116. package/dist/extra/operators.js +1 -0
  117. package/dist/extra/reactive.cjs +1 -0
  118. package/dist/extra/reactive.d.cts +352 -0
  119. package/dist/extra/reactive.d.ts +352 -0
  120. package/dist/extra/reactive.js +1 -0
  121. package/dist/extra/sources.cjs +1 -2486
  122. package/dist/extra/sources.d.cts +6 -2
  123. package/dist/extra/sources.d.ts +6 -2
  124. package/dist/extra/sources.js +1 -57
  125. package/dist/extra/storage-browser.cjs +1 -0
  126. package/dist/extra/storage-browser.d.cts +71 -0
  127. package/dist/extra/storage-browser.d.ts +71 -0
  128. package/dist/extra/storage-browser.js +1 -0
  129. package/dist/extra/storage-core.cjs +1 -0
  130. package/dist/extra/storage-core.d.cts +98 -0
  131. package/dist/extra/storage-core.d.ts +98 -0
  132. package/dist/extra/storage-core.js +1 -0
  133. package/dist/extra/storage-node.cjs +2 -0
  134. package/dist/extra/storage-node.d.cts +60 -0
  135. package/dist/extra/storage-node.d.ts +60 -0
  136. package/dist/extra/storage-node.js +1 -0
  137. package/dist/fallback-BaTS7vVY.d.cts +258 -0
  138. package/dist/fallback-eOm3LNxP.d.ts +258 -0
  139. package/dist/graph/index.cjs +7 -5030
  140. package/dist/graph/index.d.cts +6 -5
  141. package/dist/graph/index.d.ts +6 -5
  142. package/dist/graph/index.js +1 -50
  143. package/dist/{graph-DNCrvZSn.d.cts → graph-DgohqXK-.d.cts} +151 -32
  144. package/dist/{graph-CCwGKLCm.d.ts → graph-Qjg9gWHI.d.ts} +151 -32
  145. package/dist/{index-BwfLUNw4.d.ts → index-2BVuRCI4.d.ts} +173 -2040
  146. package/dist/{index-BPVt8kqc.d.ts → index-2NvguqQA.d.ts} +10 -195
  147. package/dist/index-A65LZhoM.d.ts +186 -0
  148. package/dist/{index-DlLp-2Xn.d.cts → index-B-8FCEua.d.cts} +10 -195
  149. package/dist/index-B-gqvYel.d.ts +135 -0
  150. package/dist/index-B2PRuolf.d.cts +86 -0
  151. package/dist/index-BJqt9EwW.d.ts +231 -0
  152. package/dist/{index-BHlKbUwO.d.cts → index-BKjT5DiZ.d.cts} +173 -2040
  153. package/dist/{index-C0svESO4.d.ts → index-BM8BU4q6.d.ts} +1 -1
  154. package/dist/{index-VdHQMPy1.d.ts → index-BQaEnxBf.d.ts} +1 -1
  155. package/dist/index-BSfwiy5B.d.ts +192 -0
  156. package/dist/index-BTSkeCZs.d.cts +291 -0
  157. package/dist/index-BUVtw1Ay.d.cts +186 -0
  158. package/dist/index-BUi57v_p.d.ts +163 -0
  159. package/dist/{messaging-Gt4LPbyA.d.cts → index-BanNUILp.d.cts} +31 -93
  160. package/dist/{audit-DRlSzBu9.d.ts → index-BayHDRx6.d.cts} +27 -21
  161. package/dist/{index-B6D3QNSA.d.ts → index-BiyjsZ0m.d.ts} +148 -20
  162. package/dist/index-BqZ6vB2A.d.ts +2057 -0
  163. package/dist/{memory-li6FL5RM.d.ts → index-BuVidq3D.d.cts} +26 -26
  164. package/dist/index-Byh-xTyp.d.ts +105 -0
  165. package/dist/index-C08QPDcV.d.cts +321 -0
  166. package/dist/{demo-shell-BDkOptd6.d.ts → index-C66RJiX8.d.ts} +14 -14
  167. package/dist/index-C8RfjffH.d.ts +291 -0
  168. package/dist/index-CA1Cu7Ud.d.ts +873 -0
  169. package/dist/{index-ByQxazQJ.d.cts → index-CABbltIu.d.cts} +1 -1
  170. package/dist/{index-VHqptjhu.d.cts → index-CHEBsnYv.d.cts} +1 -1
  171. package/dist/{index-BuEoe-Qu.d.ts → index-CI0yDnLp.d.ts} +9 -9
  172. package/dist/{index-B9B7_HEY.d.ts → index-CJ45TW-h.d.ts} +1 -1
  173. package/dist/{index-CO8uBlUh.d.cts → index-CJZKZoo4.d.cts} +148 -20
  174. package/dist/{index-wEn0eFe8.d.ts → index-CX2tFJL1.d.ts} +1 -1
  175. package/dist/{index-BaSM3aYt.d.ts → index-CcWOJ6F0.d.ts} +3 -3
  176. package/dist/{audit-ClmqGOCx.d.cts → index-CiaVoZGo.d.ts} +27 -21
  177. package/dist/{index-Dzk2hrlR.d.ts → index-Ct5CWc4E.d.ts} +1 -1
  178. package/dist/index-D38duMCv.d.cts +357 -0
  179. package/dist/{index-C8oil6M6.d.ts → index-D5XJ2tSx.d.ts} +30 -6
  180. package/dist/{index-DO_6JN9Z.d.cts → index-D80do5jX.d.cts} +1 -1
  181. package/dist/index-D9HKAH_-.d.cts +231 -0
  182. package/dist/index-DBe_8XW5.d.cts +143 -0
  183. package/dist/{memory-C6Z2tGpC.d.cts → index-DCeTyFlB.d.ts} +26 -26
  184. package/dist/index-DDy8eeXS.d.ts +321 -0
  185. package/dist/index-DJ5oNBc8.d.ts +143 -0
  186. package/dist/{index-CI3DprxP.d.cts → index-DP0_O3ls.d.cts} +30 -6
  187. package/dist/{demo-shell-Crid1WdR.d.cts → index-DX8xS-yB.d.cts} +14 -14
  188. package/dist/index-DiZejfCI.d.cts +2057 -0
  189. package/dist/index-DknyJ2Fu.d.cts +163 -0
  190. package/dist/index-DoWMs-Kk.d.cts +135 -0
  191. package/dist/{messaging-XDoYablx.d.ts → index-DuB5aO4-.d.ts} +31 -93
  192. package/dist/index-DwjJGKxV.d.ts +357 -0
  193. package/dist/{index-B6EhDnjH.d.cts → index-H_oxVec5.d.cts} +1 -1
  194. package/dist/{index-3lsddbbS.d.ts → index-IMAHq-ia.d.ts} +1 -1
  195. package/dist/{index-B1tloyhO.d.cts → index-U1nir7MX.d.cts} +1 -1
  196. package/dist/index-Vg7tORgk.d.ts +86 -0
  197. package/dist/index-dig-r2tQ.d.cts +873 -0
  198. package/dist/{index-CxFrXH4m.d.ts → index-gsT79Xu9.d.ts} +1 -1
  199. package/dist/{index-D8wS_PeY.d.cts → index-i99Ka8s7.d.cts} +9 -9
  200. package/dist/index-iKkyJosF.d.cts +105 -0
  201. package/dist/{index-Xi3u0HCQ.d.cts → index-jleeotBT.d.cts} +1 -1
  202. package/dist/{index-DVGiGFGT.d.cts → index-kykKWwV-.d.cts} +3 -3
  203. package/dist/index-vgcLF5TH.d.cts +192 -0
  204. package/dist/{index-DYme44FM.d.cts → index-y1RllPn4.d.cts} +1 -1
  205. package/dist/index.cjs +151 -24142
  206. package/dist/index.d.cts +69 -2099
  207. package/dist/index.d.ts +69 -2099
  208. package/dist/index.js +1 -3868
  209. package/dist/{meta-CbznRPYJ.d.ts → meta-CX7YsOzp.d.cts} +5 -5
  210. package/dist/{meta-BxCA7rcr.d.cts → meta-CckhhFRd.d.ts} +5 -5
  211. package/dist/{node-BmerH3kS.d.cts → node-Dd6wHSib.d.cts} +71 -11
  212. package/dist/{node-BmerH3kS.d.ts → node-Dd6wHSib.d.ts} +71 -11
  213. package/dist/{observable-BgGUwcqp.d.ts → observable-BZJgo616.d.ts} +1 -1
  214. package/dist/{observable-DJt_AxzQ.d.cts → observable-kwzpLvbi.d.cts} +1 -1
  215. package/dist/patterns/ai/browser.cjs +25 -0
  216. package/dist/patterns/ai/browser.d.cts +127 -0
  217. package/dist/patterns/ai/browser.d.ts +127 -0
  218. package/dist/patterns/ai/browser.js +3 -0
  219. package/dist/patterns/ai/index.cjs +92 -0
  220. package/dist/patterns/ai/index.d.cts +17 -0
  221. package/dist/patterns/ai/index.d.ts +17 -0
  222. package/dist/patterns/ai/index.js +1 -0
  223. package/dist/patterns/ai/node.cjs +2 -0
  224. package/dist/patterns/ai/node.d.cts +58 -0
  225. package/dist/patterns/ai/node.d.ts +58 -0
  226. package/dist/patterns/ai/node.js +1 -0
  227. package/dist/patterns/audit/index.cjs +7 -0
  228. package/dist/patterns/audit/index.d.cts +6 -0
  229. package/dist/patterns/audit/index.d.ts +6 -0
  230. package/dist/patterns/audit/index.js +1 -0
  231. package/dist/patterns/cqrs/index.cjs +7 -0
  232. package/dist/patterns/cqrs/index.d.cts +5 -0
  233. package/dist/patterns/cqrs/index.d.ts +5 -0
  234. package/dist/patterns/cqrs/index.js +1 -0
  235. package/dist/patterns/demo-shell/index.cjs +8 -0
  236. package/dist/patterns/demo-shell/index.d.cts +6 -0
  237. package/dist/patterns/demo-shell/index.d.ts +6 -0
  238. package/dist/patterns/demo-shell/index.js +1 -0
  239. package/dist/patterns/domain-templates/index.cjs +7 -0
  240. package/dist/patterns/domain-templates/index.d.cts +5 -0
  241. package/dist/patterns/domain-templates/index.d.ts +5 -0
  242. package/dist/patterns/domain-templates/index.js +1 -0
  243. package/dist/patterns/graphspec/index.cjs +84 -0
  244. package/dist/patterns/graphspec/index.d.cts +7 -0
  245. package/dist/patterns/graphspec/index.d.ts +7 -0
  246. package/dist/patterns/graphspec/index.js +1 -0
  247. package/dist/patterns/guarded-execution/index.cjs +7 -0
  248. package/dist/patterns/guarded-execution/index.d.cts +7 -0
  249. package/dist/patterns/guarded-execution/index.d.ts +7 -0
  250. package/dist/patterns/guarded-execution/index.js +1 -0
  251. package/dist/patterns/harness/index.cjs +49 -0
  252. package/dist/patterns/harness/index.d.cts +11 -0
  253. package/dist/patterns/harness/index.d.ts +11 -0
  254. package/dist/patterns/harness/index.js +1 -0
  255. package/dist/patterns/job-queue/index.cjs +7 -0
  256. package/dist/patterns/job-queue/index.d.cts +5 -0
  257. package/dist/patterns/job-queue/index.d.ts +5 -0
  258. package/dist/patterns/job-queue/index.js +1 -0
  259. package/dist/patterns/lens/index.cjs +7 -0
  260. package/dist/patterns/lens/index.d.cts +7 -0
  261. package/dist/patterns/lens/index.d.ts +7 -0
  262. package/dist/patterns/lens/index.js +1 -0
  263. package/dist/patterns/memory/index.cjs +7 -0
  264. package/dist/patterns/memory/index.d.cts +5 -0
  265. package/dist/patterns/memory/index.d.ts +5 -0
  266. package/dist/patterns/memory/index.js +1 -0
  267. package/dist/patterns/messaging/index.cjs +7 -0
  268. package/dist/patterns/messaging/index.d.cts +5 -0
  269. package/dist/patterns/messaging/index.d.ts +5 -0
  270. package/dist/patterns/messaging/index.js +1 -0
  271. package/dist/patterns/orchestration/index.cjs +7 -0
  272. package/dist/patterns/orchestration/index.d.cts +6 -0
  273. package/dist/patterns/orchestration/index.d.ts +6 -0
  274. package/dist/patterns/orchestration/index.js +1 -0
  275. package/dist/patterns/reactive-layout/index.cjs +8 -6444
  276. package/dist/patterns/reactive-layout/index.d.cts +6 -6
  277. package/dist/patterns/reactive-layout/index.d.ts +6 -6
  278. package/dist/patterns/reactive-layout/index.js +1 -56
  279. package/dist/patterns/reduction/index.cjs +7 -0
  280. package/dist/patterns/reduction/index.d.cts +5 -0
  281. package/dist/patterns/reduction/index.d.ts +5 -0
  282. package/dist/patterns/reduction/index.js +1 -0
  283. package/dist/patterns/refine-loop/index.cjs +9 -0
  284. package/dist/patterns/refine-loop/index.d.cts +7 -0
  285. package/dist/patterns/refine-loop/index.d.ts +7 -0
  286. package/dist/patterns/refine-loop/index.js +1 -0
  287. package/dist/patterns/resilient-pipeline/index.cjs +1 -0
  288. package/dist/patterns/resilient-pipeline/index.d.cts +7 -0
  289. package/dist/patterns/resilient-pipeline/index.d.ts +7 -0
  290. package/dist/patterns/resilient-pipeline/index.js +1 -0
  291. package/dist/patterns/surface/index.cjs +15 -0
  292. package/dist/patterns/surface/index.d.cts +8 -0
  293. package/dist/patterns/surface/index.d.ts +8 -0
  294. package/dist/patterns/surface/index.js +1 -0
  295. package/dist/{reactive-layout-u5Ulnqag.d.ts → reactive-layout-BkBwVvwm.d.ts} +2 -2
  296. package/dist/{reactive-layout-MQP--J3F.d.cts → reactive-layout-PiFwVaWS.d.cts} +2 -2
  297. package/dist/reactive-log-1QTyx10a.d.ts +190 -0
  298. package/dist/reactive-log-BiVoSxke.d.cts +190 -0
  299. package/dist/{composite-aUCvjZVR.d.ts → reactive-map-CwO_COHy.d.cts} +2 -67
  300. package/dist/{composite-C7PcQvcs.d.cts → reactive-map-FeuTVAJb.d.ts} +2 -67
  301. package/dist/resilience-CBfYJW5C.d.ts +493 -0
  302. package/dist/resilience-XRUF267O.js +1 -0
  303. package/dist/resilience-uBz4yvYB.d.cts +493 -0
  304. package/dist/{sugar-CCOxXK1e.d.ts → sugar-CY-MCfZ9.d.ts} +17 -15
  305. package/dist/{sugar-D02n5JjF.d.cts → sugar-DHttV0LX.d.cts} +17 -15
  306. package/dist/topology-tree-CVjt2gp7.d.cts +25 -0
  307. package/dist/topology-tree-one6oSKY.d.ts +25 -0
  308. package/dist/types-O3GzJY2U.d.cts +401 -0
  309. package/dist/types-u64Ose53.d.ts +401 -0
  310. package/package.json +252 -22
  311. package/dist/ai-CaR_912Q.d.cts +0 -1033
  312. package/dist/ai-WlRltJV7.d.ts +0 -1033
  313. package/dist/chunk-3ZWCKRHX.js +0 -117
  314. package/dist/chunk-3ZWCKRHX.js.map +0 -1
  315. package/dist/chunk-7TAQJHQV.js +0 -103
  316. package/dist/chunk-7TAQJHQV.js.map +0 -1
  317. package/dist/chunk-APFNLIRG.js +0 -62
  318. package/dist/chunk-APFNLIRG.js.map +0 -1
  319. package/dist/chunk-AT5LKYNL.js +0 -395
  320. package/dist/chunk-AT5LKYNL.js.map +0 -1
  321. package/dist/chunk-BQ6RQQFF.js +0 -5087
  322. package/dist/chunk-BQ6RQQFF.js.map +0 -1
  323. package/dist/chunk-BVZYTZ5H.js +0 -599
  324. package/dist/chunk-BVZYTZ5H.js.map +0 -1
  325. package/dist/chunk-DST5DKZS.js +0 -1371
  326. package/dist/chunk-DST5DKZS.js.map +0 -1
  327. package/dist/chunk-GTE6PWRZ.js +0 -866
  328. package/dist/chunk-GTE6PWRZ.js.map +0 -1
  329. package/dist/chunk-HXZEYDUR.js +0 -94
  330. package/dist/chunk-HXZEYDUR.js.map +0 -1
  331. package/dist/chunk-J22W6HV3.js +0 -107
  332. package/dist/chunk-J22W6HV3.js.map +0 -1
  333. package/dist/chunk-J2VBW3DZ.js +0 -302
  334. package/dist/chunk-J2VBW3DZ.js.map +0 -1
  335. package/dist/chunk-JSCT3CR4.js +0 -38
  336. package/dist/chunk-JSCT3CR4.js.map +0 -1
  337. package/dist/chunk-JWBCY4NC.js +0 -330
  338. package/dist/chunk-JWBCY4NC.js.map +0 -1
  339. package/dist/chunk-K2AUJHVP.js +0 -2251
  340. package/dist/chunk-K2AUJHVP.js.map +0 -1
  341. package/dist/chunk-MJ2NKQQL.js +0 -119
  342. package/dist/chunk-MJ2NKQQL.js.map +0 -1
  343. package/dist/chunk-N6UR7YVY.js +0 -198
  344. package/dist/chunk-N6UR7YVY.js.map +0 -1
  345. package/dist/chunk-NC6S43JJ.js +0 -456
  346. package/dist/chunk-NC6S43JJ.js.map +0 -1
  347. package/dist/chunk-OFVJBJXR.js +0 -98
  348. package/dist/chunk-OFVJBJXR.js.map +0 -1
  349. package/dist/chunk-OHISZPOJ.js +0 -97
  350. package/dist/chunk-OHISZPOJ.js.map +0 -1
  351. package/dist/chunk-OU5CQKNW.js +0 -102
  352. package/dist/chunk-OU5CQKNW.js.map +0 -1
  353. package/dist/chunk-PF7GRZMW.js +0 -2712
  354. package/dist/chunk-PF7GRZMW.js.map +0 -1
  355. package/dist/chunk-PHOUUNK7.js +0 -2291
  356. package/dist/chunk-PHOUUNK7.js.map +0 -1
  357. package/dist/chunk-RNHBMHKA.js +0 -1665
  358. package/dist/chunk-RNHBMHKA.js.map +0 -1
  359. package/dist/chunk-SX52TAR4.js +0 -110
  360. package/dist/chunk-SX52TAR4.js.map +0 -1
  361. package/dist/chunk-VYPWMZ6H.js +0 -98
  362. package/dist/chunk-VYPWMZ6H.js.map +0 -1
  363. package/dist/chunk-WBZOVTYK.js +0 -171
  364. package/dist/chunk-WBZOVTYK.js.map +0 -1
  365. package/dist/chunk-WKNUIZOY.js +0 -354
  366. package/dist/chunk-WKNUIZOY.js.map +0 -1
  367. package/dist/chunk-X3VMZYBT.js +0 -713
  368. package/dist/chunk-X3VMZYBT.js.map +0 -1
  369. package/dist/chunk-X5R3GL6H.js +0 -525
  370. package/dist/chunk-X5R3GL6H.js.map +0 -1
  371. package/dist/chunk-XGPU467M.js +0 -136
  372. package/dist/chunk-XGPU467M.js.map +0 -1
  373. package/dist/compat/index.cjs.map +0 -1
  374. package/dist/compat/index.js.map +0 -1
  375. package/dist/compat/jotai/index.cjs.map +0 -1
  376. package/dist/compat/jotai/index.js.map +0 -1
  377. package/dist/compat/nanostores/index.cjs.map +0 -1
  378. package/dist/compat/nanostores/index.js.map +0 -1
  379. package/dist/compat/nestjs/index.cjs.map +0 -1
  380. package/dist/compat/nestjs/index.js.map +0 -1
  381. package/dist/compat/react/index.cjs.map +0 -1
  382. package/dist/compat/react/index.js.map +0 -1
  383. package/dist/compat/solid/index.cjs.map +0 -1
  384. package/dist/compat/solid/index.js.map +0 -1
  385. package/dist/compat/svelte/index.cjs.map +0 -1
  386. package/dist/compat/svelte/index.js.map +0 -1
  387. package/dist/compat/vue/index.cjs.map +0 -1
  388. package/dist/compat/vue/index.js.map +0 -1
  389. package/dist/compat/zustand/index.cjs.map +0 -1
  390. package/dist/compat/zustand/index.js.map +0 -1
  391. package/dist/core/index.cjs.map +0 -1
  392. package/dist/core/index.js.map +0 -1
  393. package/dist/extra/index.cjs.map +0 -1
  394. package/dist/extra/index.js.map +0 -1
  395. package/dist/extra/sources.cjs.map +0 -1
  396. package/dist/extra/sources.js.map +0 -1
  397. package/dist/graph/index.cjs.map +0 -1
  398. package/dist/graph/index.js.map +0 -1
  399. package/dist/index.cjs.map +0 -1
  400. package/dist/index.js.map +0 -1
  401. package/dist/patterns/ai.cjs +0 -7930
  402. package/dist/patterns/ai.cjs.map +0 -1
  403. package/dist/patterns/ai.d.cts +0 -10
  404. package/dist/patterns/ai.d.ts +0 -10
  405. package/dist/patterns/ai.js +0 -71
  406. package/dist/patterns/ai.js.map +0 -1
  407. package/dist/patterns/audit.cjs +0 -5805
  408. package/dist/patterns/audit.cjs.map +0 -1
  409. package/dist/patterns/audit.d.cts +0 -6
  410. package/dist/patterns/audit.d.ts +0 -6
  411. package/dist/patterns/audit.js +0 -29
  412. package/dist/patterns/audit.js.map +0 -1
  413. package/dist/patterns/demo-shell.cjs +0 -5604
  414. package/dist/patterns/demo-shell.cjs.map +0 -1
  415. package/dist/patterns/demo-shell.d.cts +0 -6
  416. package/dist/patterns/demo-shell.d.ts +0 -6
  417. package/dist/patterns/demo-shell.js +0 -15
  418. package/dist/patterns/demo-shell.js.map +0 -1
  419. package/dist/patterns/memory.cjs +0 -5283
  420. package/dist/patterns/memory.cjs.map +0 -1
  421. package/dist/patterns/memory.d.cts +0 -5
  422. package/dist/patterns/memory.d.ts +0 -5
  423. package/dist/patterns/memory.js +0 -20
  424. package/dist/patterns/memory.js.map +0 -1
  425. package/dist/patterns/reactive-layout/index.cjs.map +0 -1
  426. package/dist/patterns/reactive-layout/index.js.map +0 -1
  427. package/dist/storage-CMjUUuxn.d.ts +0 -190
  428. package/dist/storage-DdWlZo6U.d.cts +0 -190
@@ -0,0 +1,321 @@
1
+ import { a as Node } from './node-Dd6wHSib.js';
2
+ import { G as Graph } from './graph-Qjg9gWHI.js';
3
+ import { L as LLMAdapter } from './types-u64Ose53.js';
4
+
5
+ /**
6
+ * LLM graph composition (roadmap §8.3).
7
+ *
8
+ * Declarative GraphSpec schema + compiler/decompiler for graph topology.
9
+ * The LLM designs graphs as JSON; compileSpec instantiates them; decompileGraph
10
+ * extracts them back. Templates support reusable subgraph patterns. Feedback
11
+ * edges express bounded cycles via §8.1 feedback().
12
+ *
13
+ * @module
14
+ */
15
+
16
+ /** A single node declaration in a GraphSpec. */
17
+ type GraphSpecNode = {
18
+ /** Node kind: state, producer, derived, effect, operator. */
19
+ type: "state" | "producer" | "derived" | "effect" | "operator";
20
+ /** Dependency node names (for derived/effect/operator). */
21
+ deps?: string[];
22
+ /** Named function from the catalog (for derived/effect/operator/producer). */
23
+ fn?: string;
24
+ /** Named source from the catalog (for producer). */
25
+ source?: string;
26
+ /** Freeform config passed to the catalog fn/source factory. */
27
+ config?: Record<string, unknown>;
28
+ /** Initial value (for state nodes). */
29
+ initial?: unknown;
30
+ /** Human/LLM-readable metadata. */
31
+ meta?: Record<string, unknown>;
32
+ };
33
+ /** Template instantiation node — expanded at compile time. */
34
+ type GraphSpecTemplateRef = {
35
+ type: "template";
36
+ /** Name of the template to instantiate. */
37
+ template: string;
38
+ /** Parameter bindings: template param name → node name. */
39
+ bind: Record<string, string>;
40
+ };
41
+ /** A reusable subgraph pattern with parameter substitution. */
42
+ type GraphSpecTemplate = {
43
+ /** Parameter names (prefixed with $ in node refs). */
44
+ params: string[];
45
+ /** Node declarations within the template. */
46
+ nodes: Record<string, GraphSpecNode>;
47
+ /** Which node's output is the template's output. */
48
+ output: string;
49
+ };
50
+ /** A feedback edge: bounded cycle from condition to reentry. */
51
+ type GraphSpecFeedbackEdge = {
52
+ /** Node whose DATA triggers the feedback. */
53
+ from: string;
54
+ /** State node that receives the feedback value. */
55
+ to: string;
56
+ /** Max iterations before stopping (default: 10). */
57
+ maxIterations?: number;
58
+ };
59
+ /** Declarative graph topology for LLM composition (§8.3). */
60
+ type GraphSpec = {
61
+ /** Graph name. */
62
+ name: string;
63
+ /** Node declarations (keyed by node name). */
64
+ nodes: Record<string, GraphSpecNode | GraphSpecTemplateRef>;
65
+ /** Reusable subgraph templates. */
66
+ templates?: Record<string, GraphSpecTemplate>;
67
+ /** Feedback edges (bounded cycles). */
68
+ feedback?: GraphSpecFeedbackEdge[];
69
+ };
70
+ /**
71
+ * Factory for creating a derived/effect/operator node from catalog.
72
+ * Receives resolved dep nodes and the config from the spec.
73
+ */
74
+ type FnFactory = (deps: Node<unknown>[], config: Record<string, unknown>) => Node<unknown>;
75
+ /**
76
+ * Factory for creating a producer node from catalog.
77
+ * Receives the config from the spec.
78
+ */
79
+ type SourceFactory = (config: Record<string, unknown>) => Node<unknown>;
80
+ /** Simple config field descriptor for LLM prompt generation and validation. */
81
+ type ConfigFieldSchema = {
82
+ /** Human-readable type: "string", "number", "boolean", "string[]", etc. */
83
+ type: string;
84
+ /** Whether this field is required (default: true). */
85
+ required?: boolean;
86
+ /** Allowed values (enum constraint). */
87
+ enum?: readonly (string | number | boolean)[];
88
+ /** Human-readable description for LLM context. */
89
+ description?: string;
90
+ /** Default value if omitted. */
91
+ default?: unknown;
92
+ };
93
+ /**
94
+ * Rich catalog entry: bundles a runtime factory with LLM-facing metadata.
95
+ *
96
+ * The metadata is used to:
97
+ * 1. Auto-generate prompt text for {@link llmCompose} (replaces manual `catalogDescription`)
98
+ * 2. Validate LLM output in {@link validateSpec} (catch wrong fn names, invalid config)
99
+ * 3. Provide actionable error messages for {@link llmRefine} feedback loops
100
+ *
101
+ * Developers register ONE object; the library handles prompt generation and validation.
102
+ */
103
+ type CatalogFnEntry = {
104
+ /** Runtime factory. */
105
+ factory: FnFactory;
106
+ /** One-line description for LLM prompt (what it does, not how). */
107
+ description: string;
108
+ /** Config field schemas. Keys are config field names. */
109
+ configSchema?: Record<string, ConfigFieldSchema>;
110
+ /** Example config objects (shown in prompt for complex fns). */
111
+ examples?: Record<string, unknown>[];
112
+ /** Category tags for grouping in prompt (e.g., "resilience", "reduction", "ai"). */
113
+ tags?: string[];
114
+ };
115
+ /** Rich catalog entry for producer sources. */
116
+ type CatalogSourceEntry = {
117
+ /** Runtime factory. */
118
+ factory: SourceFactory;
119
+ /** One-line description for LLM prompt. */
120
+ description: string;
121
+ /** Config field schemas. */
122
+ configSchema?: Record<string, ConfigFieldSchema>;
123
+ /** Example config objects. */
124
+ examples?: Record<string, unknown>[];
125
+ /** Category tags. */
126
+ tags?: string[];
127
+ };
128
+ /**
129
+ * Fn/source lookup table passed to compileSpec and llmCompose.
130
+ *
131
+ * Accepts both bare factories (backward-compatible) and rich {@link CatalogFnEntry}
132
+ * / {@link CatalogSourceEntry} objects. When rich entries are provided, the library
133
+ * auto-generates LLM prompts and validates LLM output against the catalog.
134
+ */
135
+ type GraphSpecCatalog = {
136
+ fns?: Record<string, FnFactory | CatalogFnEntry>;
137
+ sources?: Record<string, SourceFactory | CatalogSourceEntry>;
138
+ };
139
+ /** Type guard: is this a rich catalog fn entry (vs bare factory)? */
140
+ declare function isRichFnEntry(entry: FnFactory | CatalogFnEntry): entry is CatalogFnEntry;
141
+ /** Type guard: is this a rich catalog source entry (vs bare factory)? */
142
+ declare function isRichSourceEntry(entry: SourceFactory | CatalogSourceEntry): entry is CatalogSourceEntry;
143
+ /** Extract the runtime factory from a catalog entry (rich or bare). */
144
+ declare function extractFnFactory(entry: FnFactory | CatalogFnEntry): FnFactory;
145
+ /** Extract the runtime factory from a catalog source entry (rich or bare). */
146
+ declare function extractSourceFactory(entry: SourceFactory | CatalogSourceEntry): SourceFactory;
147
+ /**
148
+ * Auto-generate catalog prompt text from rich catalog entries.
149
+ *
150
+ * Groups fns by tag, formats each as `- name: description. Config: { ... }`.
151
+ * Falls back to listing names only for bare factories.
152
+ */
153
+ declare function generateCatalogPrompt(catalog: GraphSpecCatalog): string;
154
+ /**
155
+ * Validate a GraphSpec against a catalog.
156
+ *
157
+ * Checks that fn/source names reference actual catalog entries, and validates
158
+ * config fields against configSchema when rich entries are available.
159
+ * Returns additional errors beyond structural {@link validateSpec} checks.
160
+ */
161
+ declare function validateSpecAgainstCatalog(spec: GraphSpec, catalog: GraphSpecCatalog): GraphSpecValidation;
162
+ /** Validation result from {@link validateSpec}. */
163
+ type GraphSpecValidation = {
164
+ valid: boolean;
165
+ errors: string[];
166
+ };
167
+ /**
168
+ * Validate a GraphSpec JSON object.
169
+ *
170
+ * Checks structural validity: required fields, node types, dep references,
171
+ * template references, feedback edge targets, self-cycles, and bind completeness.
172
+ */
173
+ declare function validateSpec(spec: unknown): GraphSpecValidation;
174
+ /** Options for {@link compileSpec}. */
175
+ type CompileSpecOptions = {
176
+ /** Fn/source catalog for resolving named factories. */
177
+ catalog?: GraphSpecCatalog;
178
+ };
179
+ /**
180
+ * Instantiate a Graph from a GraphSpec.
181
+ *
182
+ * Handles template expansion (mounted subgraphs), feedback wiring via §8.1
183
+ * feedback(), node factory lookup from the catalog, and topology validation.
184
+ *
185
+ * @param spec - Declarative graph topology.
186
+ * @param opts - Catalog and compile options.
187
+ * @returns A running Graph.
188
+ * @throws On validation failure, missing catalog entries, or unresolvable deps.
189
+ *
190
+ * @category patterns
191
+ */
192
+ declare function compileSpec(spec: GraphSpec, opts?: CompileSpecOptions): Graph;
193
+ /**
194
+ * Extract a GraphSpec from a running graph.
195
+ *
196
+ * Uses `describe({ detail: "standard" })` as a starting point, then enriches:
197
+ * - Feedback edges recovered from counter node meta (`feedbackFrom`/`feedbackTo`)
198
+ * - Template refs recovered from output node meta (`_templateName`/`_templateBind`)
199
+ * - Structural fingerprinting as fallback for 2+ identical mounted subgraphs
200
+ *
201
+ * @param graph - Running graph to decompile.
202
+ * @returns A GraphSpec representation.
203
+ *
204
+ * @category patterns
205
+ */
206
+ declare function decompileGraph(graph: Graph): GraphSpec;
207
+ /** A single change in a spec diff. */
208
+ type SpecDiffEntry = {
209
+ type: "added" | "removed" | "changed";
210
+ path: string;
211
+ detail?: string;
212
+ };
213
+ /** Structural diff between two GraphSpecs. */
214
+ type SpecDiffResult = {
215
+ entries: SpecDiffEntry[];
216
+ summary: string;
217
+ };
218
+ /**
219
+ * Compute a structural diff between two GraphSpecs.
220
+ *
221
+ * Template-aware: reports "changed template definition" vs "changed
222
+ * instantiation bindings." No runtime needed — pure JSON comparison.
223
+ *
224
+ * @param specA - The "before" spec.
225
+ * @param specB - The "after" spec.
226
+ * @returns Diff entries and a human-readable summary.
227
+ *
228
+ * @category patterns
229
+ */
230
+ declare function specDiff(specA: GraphSpec, specB: GraphSpec): SpecDiffResult;
231
+ /** Options for {@link llmCompose}. */
232
+ type LLMComposeOptions = {
233
+ model?: string;
234
+ temperature?: number;
235
+ maxTokens?: number;
236
+ /** Extra instructions appended to the system prompt. */
237
+ systemPromptExtra?: string;
238
+ /**
239
+ * Available fn/source catalog names for the LLM to reference.
240
+ * When omitted and `catalog` contains rich {@link CatalogFnEntry} entries,
241
+ * the prompt is auto-generated via {@link generateCatalogPrompt}.
242
+ */
243
+ catalogDescription?: string;
244
+ /**
245
+ * Catalog for auto-prompt generation and catalog-aware validation.
246
+ * When rich entries are provided, the catalog prompt is auto-generated
247
+ * and LLM output is validated against fn/source names and config schemas.
248
+ */
249
+ catalog?: GraphSpecCatalog;
250
+ /**
251
+ * Max auto-refine attempts when the LLM output fails catalog validation.
252
+ * Each attempt feeds the validation errors back to the LLM via llmRefine.
253
+ * Default: 0 (no auto-refine). Set to 2-3 for production use.
254
+ */
255
+ maxAutoRefine?: number;
256
+ };
257
+ /**
258
+ * Ask an LLM to compose a GraphSpec from a natural-language problem description.
259
+ *
260
+ * The LLM generates a GraphSpec (with templates + feedback), validated before
261
+ * returning. The spec is for human review before compilation via compileSpec().
262
+ *
263
+ * @param problem - Natural language problem description.
264
+ * @param adapter - LLM adapter for the generation call.
265
+ * @param opts - Model options and catalog description.
266
+ * @returns A validated GraphSpec.
267
+ * @throws On invalid LLM output or validation failure.
268
+ *
269
+ * @category patterns
270
+ */
271
+ declare function llmCompose(problem: string, adapter: LLMAdapter, opts?: LLMComposeOptions): Promise<GraphSpec>;
272
+ /** Options for {@link llmRefine}. */
273
+ type LLMRefineOptions = LLMComposeOptions;
274
+ /**
275
+ * Ask an LLM to modify an existing GraphSpec based on feedback or changed requirements.
276
+ *
277
+ * @param currentSpec - The current GraphSpec to modify.
278
+ * @param feedback - Natural language feedback or changed requirements.
279
+ * @param adapter - LLM adapter for the generation call.
280
+ * @param opts - Model options.
281
+ * @returns A new GraphSpec incorporating the feedback.
282
+ * @throws On invalid LLM output or validation failure.
283
+ *
284
+ * @category patterns
285
+ */
286
+ declare function llmRefine(currentSpec: GraphSpec, feedback: string, adapter: LLMAdapter, opts?: LLMRefineOptions): Promise<GraphSpec>;
287
+
288
+ type index_CatalogFnEntry = CatalogFnEntry;
289
+ type index_CatalogSourceEntry = CatalogSourceEntry;
290
+ type index_CompileSpecOptions = CompileSpecOptions;
291
+ type index_ConfigFieldSchema = ConfigFieldSchema;
292
+ type index_FnFactory = FnFactory;
293
+ type index_GraphSpec = GraphSpec;
294
+ type index_GraphSpecCatalog = GraphSpecCatalog;
295
+ type index_GraphSpecFeedbackEdge = GraphSpecFeedbackEdge;
296
+ type index_GraphSpecNode = GraphSpecNode;
297
+ type index_GraphSpecTemplate = GraphSpecTemplate;
298
+ type index_GraphSpecTemplateRef = GraphSpecTemplateRef;
299
+ type index_GraphSpecValidation = GraphSpecValidation;
300
+ type index_LLMComposeOptions = LLMComposeOptions;
301
+ type index_LLMRefineOptions = LLMRefineOptions;
302
+ type index_SourceFactory = SourceFactory;
303
+ type index_SpecDiffEntry = SpecDiffEntry;
304
+ type index_SpecDiffResult = SpecDiffResult;
305
+ declare const index_compileSpec: typeof compileSpec;
306
+ declare const index_decompileGraph: typeof decompileGraph;
307
+ declare const index_extractFnFactory: typeof extractFnFactory;
308
+ declare const index_extractSourceFactory: typeof extractSourceFactory;
309
+ declare const index_generateCatalogPrompt: typeof generateCatalogPrompt;
310
+ declare const index_isRichFnEntry: typeof isRichFnEntry;
311
+ declare const index_isRichSourceEntry: typeof isRichSourceEntry;
312
+ declare const index_llmCompose: typeof llmCompose;
313
+ declare const index_llmRefine: typeof llmRefine;
314
+ declare const index_specDiff: typeof specDiff;
315
+ declare const index_validateSpec: typeof validateSpec;
316
+ declare const index_validateSpecAgainstCatalog: typeof validateSpecAgainstCatalog;
317
+ declare namespace index {
318
+ export { type index_CatalogFnEntry as CatalogFnEntry, type index_CatalogSourceEntry as CatalogSourceEntry, type index_CompileSpecOptions as CompileSpecOptions, type index_ConfigFieldSchema as ConfigFieldSchema, type index_FnFactory as FnFactory, type index_GraphSpec as GraphSpec, type index_GraphSpecCatalog as GraphSpecCatalog, type index_GraphSpecFeedbackEdge as GraphSpecFeedbackEdge, type index_GraphSpecNode as GraphSpecNode, type index_GraphSpecTemplate as GraphSpecTemplate, type index_GraphSpecTemplateRef as GraphSpecTemplateRef, type index_GraphSpecValidation as GraphSpecValidation, type index_LLMComposeOptions as LLMComposeOptions, type index_LLMRefineOptions as LLMRefineOptions, type index_SourceFactory as SourceFactory, type index_SpecDiffEntry as SpecDiffEntry, type index_SpecDiffResult as SpecDiffResult, index_compileSpec as compileSpec, index_decompileGraph as decompileGraph, index_extractFnFactory as extractFnFactory, index_extractSourceFactory as extractSourceFactory, index_generateCatalogPrompt as generateCatalogPrompt, index_isRichFnEntry as isRichFnEntry, index_isRichSourceEntry as isRichSourceEntry, index_llmCompose as llmCompose, index_llmRefine as llmRefine, index_specDiff as specDiff, index_validateSpec as validateSpec, index_validateSpecAgainstCatalog as validateSpecAgainstCatalog };
319
+ }
320
+
321
+ export { type CatalogFnEntry as C, type FnFactory as F, type GraphSpec as G, type LLMComposeOptions as L, type SourceFactory as S, type CatalogSourceEntry as a, type ConfigFieldSchema as b, type GraphSpecCatalog as c, type GraphSpecFeedbackEdge as d, type GraphSpecNode as e, type GraphSpecTemplate as f, type GraphSpecTemplateRef as g, type GraphSpecValidation as h, index as i, type CompileSpecOptions as j, type LLMRefineOptions as k, type SpecDiffEntry as l, type SpecDiffResult as m, compileSpec as n, decompileGraph as o, extractFnFactory as p, extractSourceFactory as q, generateCatalogPrompt as r, isRichFnEntry as s, isRichSourceEntry as t, llmCompose as u, llmRefine as v, specDiff as w, validateSpec as x, validateSpecAgainstCatalog as y };
@@ -0,0 +1,143 @@
1
+ import { a as Node, N as NodeOptions, c as NodeActions } from './node-Dd6wHSib.js';
2
+ import { D as DerivedFn } from './sugar-CY-MCfZ9.js';
3
+ import { G as Graph, a as GraphOptions } from './graph-Qjg9gWHI.js';
4
+
5
+ /**
6
+ * Orchestration patterns (roadmap §4.1).
7
+ *
8
+ * Domain-layer helpers that build workflow shapes on top of core + extra primitives.
9
+ * Exported under the `patterns.orchestration` namespace to avoid collisions with
10
+ * Phase 2 operator names (for example `gate`, `forEach`).
11
+ */
12
+
13
+ type StepRef = string | Node<unknown>;
14
+ type OrchestrationMeta = {
15
+ orchestration?: true;
16
+ orchestration_type?: string;
17
+ };
18
+ type OrchestrationStepOptions = Omit<NodeOptions<unknown>, "describeKind" | "name" | "meta"> & {
19
+ deps?: ReadonlyArray<StepRef>;
20
+ meta?: Record<string, unknown> & OrchestrationMeta;
21
+ };
22
+ type BranchResult<T> = {
23
+ branch: "then" | "else";
24
+ value: T;
25
+ };
26
+ type SensorControls<T> = {
27
+ node: Node<T>;
28
+ push(value: T): void;
29
+ error(err: unknown): void;
30
+ complete(): void;
31
+ };
32
+ type LoopOptions = Omit<OrchestrationStepOptions, "deps"> & {
33
+ iterations?: number | StepRef;
34
+ };
35
+ type SubPipelineBuilder = (sub: Graph) => void;
36
+ /**
37
+ * Creates an orchestration graph container.
38
+ */
39
+ declare function pipeline(name: string, opts?: GraphOptions): Graph;
40
+ /**
41
+ * Registers a workflow task node.
42
+ */
43
+ declare function task<T>(graph: Graph, name: string, run: DerivedFn<T>, opts?: OrchestrationStepOptions): Node<T>;
44
+ /**
45
+ * Emits tagged branch outcomes (`then` / `else`) for each source value.
46
+ */
47
+ declare function branch<T>(graph: Graph, name: string, source: StepRef, predicate: (value: T) => boolean, opts?: Omit<OrchestrationStepOptions, "deps">): Node<BranchResult<T>>;
48
+ type ApprovalOptions = Omit<OrchestrationStepOptions, "deps"> & {
49
+ isApproved?: (value: unknown) => boolean;
50
+ };
51
+ /**
52
+ * Human/LLM approval gate over a source value.
53
+ */
54
+ declare function approval<T>(graph: Graph, name: string, source: StepRef, approver: StepRef, opts?: ApprovalOptions): Node<T>;
55
+ interface GateOptions {
56
+ /** Maximum queue size. Oldest values are FIFO-dropped when exceeded. Default: Infinity. */
57
+ maxPending?: number;
58
+ /** Start in open mode (auto-approve). Default: false. */
59
+ startOpen?: boolean;
60
+ meta?: Record<string, unknown>;
61
+ }
62
+ /** Control surface returned by {@link gate}. */
63
+ interface GateController<T> {
64
+ /** The output node registered in the graph (subscribe to receive approved values). */
65
+ node: Node<T>;
66
+ /** Reactive queue of values waiting for approval. */
67
+ pending: Node<T[]>;
68
+ /** Derived count of pending items. */
69
+ count: Node<number>;
70
+ /** Whether the gate is currently open (auto-approving). */
71
+ isOpen: Node<boolean>;
72
+ /** Approve and forward the next `count` pending values (default: 1). */
73
+ approve(count?: number): void;
74
+ /** Reject (discard) the next `count` pending values (default: 1). */
75
+ reject(count?: number): void;
76
+ /**
77
+ * Transform and forward `count` pending values (default: 1).
78
+ * `fn` receives `(value, index, pending)` — Array.map-style.
79
+ */
80
+ modify(fn: (value: T, index: number, pending: readonly T[]) => T, count?: number): void;
81
+ /** Flush all pending values and auto-approve future values. */
82
+ open(): void;
83
+ /** Re-enable manual gating (stop auto-approving). */
84
+ close(): void;
85
+ }
86
+ /**
87
+ * Human-in-the-loop gate: queues incoming values from `source` and lets an external
88
+ * controller {@link GateController.approve approve}, {@link GateController.reject reject},
89
+ * or {@link GateController.modify modify} them before forwarding downstream.
90
+ *
91
+ * Observable surfaces (`pending`, `count`, `isOpen`) are reactive nodes registered in
92
+ * the graph. The gate output node is also registered.
93
+ */
94
+ declare function gate<T>(graph: Graph, name: string, source: StepRef, opts?: GateOptions): GateController<T>;
95
+ /**
96
+ * Registers a join step that emits a tuple of latest dependency values.
97
+ */
98
+ declare function join<T extends readonly unknown[]>(graph: Graph, name: string, deps: {
99
+ [K in keyof T]: StepRef;
100
+ }, opts?: Omit<OrchestrationStepOptions, "deps">): Node<T>;
101
+ /**
102
+ * Registers a loop step that applies `iterate` to each source value N times.
103
+ */
104
+ declare function loop<T>(graph: Graph, name: string, source: StepRef, iterate: (value: T, iteration: number, actions: NodeActions) => T, opts?: LoopOptions): Node<T>;
105
+ /**
106
+ * Mounts and returns a child workflow graph.
107
+ */
108
+ declare function subPipeline(graph: Graph, name: string, childOrBuild?: Graph | SubPipelineBuilder, opts?: GraphOptions): Graph;
109
+ /**
110
+ * Registers a producer-style sensor source and returns imperative controls.
111
+ */
112
+ declare function sensor<T>(graph: Graph, name: string, initial?: T, opts?: Omit<NodeOptions<unknown>, "name" | "describeKind" | "meta"> & {
113
+ meta?: Record<string, unknown>;
114
+ }): SensorControls<T>;
115
+ /**
116
+ * Registers an error-recovery step for a source.
117
+ */
118
+ declare function onFailure<T>(graph: Graph, name: string, source: StepRef, recover: (err: unknown, actions: NodeActions) => T, opts?: Omit<OrchestrationStepOptions, "deps">): Node<T>;
119
+
120
+ type index_ApprovalOptions = ApprovalOptions;
121
+ type index_BranchResult<T> = BranchResult<T>;
122
+ type index_GateController<T> = GateController<T>;
123
+ type index_GateOptions = GateOptions;
124
+ type index_LoopOptions = LoopOptions;
125
+ type index_OrchestrationStepOptions = OrchestrationStepOptions;
126
+ type index_SensorControls<T> = SensorControls<T>;
127
+ type index_StepRef = StepRef;
128
+ type index_SubPipelineBuilder = SubPipelineBuilder;
129
+ declare const index_approval: typeof approval;
130
+ declare const index_branch: typeof branch;
131
+ declare const index_gate: typeof gate;
132
+ declare const index_join: typeof join;
133
+ declare const index_loop: typeof loop;
134
+ declare const index_onFailure: typeof onFailure;
135
+ declare const index_pipeline: typeof pipeline;
136
+ declare const index_sensor: typeof sensor;
137
+ declare const index_subPipeline: typeof subPipeline;
138
+ declare const index_task: typeof task;
139
+ declare namespace index {
140
+ export { type index_ApprovalOptions as ApprovalOptions, type index_BranchResult as BranchResult, type index_GateController as GateController, type index_GateOptions as GateOptions, type index_LoopOptions as LoopOptions, type index_OrchestrationStepOptions as OrchestrationStepOptions, type index_SensorControls as SensorControls, type index_StepRef as StepRef, type index_SubPipelineBuilder as SubPipelineBuilder, index_approval as approval, index_branch as branch, index_gate as gate, index_join as join, index_loop as loop, index_onFailure as onFailure, index_pipeline as pipeline, index_sensor as sensor, index_subPipeline as subPipeline, index_task as task };
141
+ }
142
+
143
+ export { type ApprovalOptions as A, type BranchResult as B, type GateController as G, type LoopOptions as L, type OrchestrationStepOptions as O, type SensorControls as S, type GateOptions as a, type StepRef as b, type SubPipelineBuilder as c, approval as d, branch as e, subPipeline as f, gate as g, index as i, join as j, loop as l, onFailure as o, pipeline as p, sensor as s, task as t };
@@ -1,6 +1,6 @@
1
- import { M as MeasurementAdapter, P as PreparedSegment, L as LineBreaksResult, C as CharPosition, a as LayoutCursor, I as Interval, b as LayoutLine, c as LayoutNextLineContext, d as LayoutNextLineResult, R as ReactiveLayoutBundle, e as ReactiveLayoutOptions, S as SegmentBreakKind, f as SegmentMeasureStats, g as analyzeAndMeasure, h as carveTextLineSlots, i as computeCharPositions, j as computeLineBreaks, l as layoutNextLine, r as reactiveLayout } from './reactive-layout-MQP--J3F.cjs';
2
- import { N as Node } from './node-BmerH3kS.cjs';
3
- import { a as Graph } from './graph-DNCrvZSn.cjs';
1
+ import { M as MeasurementAdapter, P as PreparedSegment, L as LineBreaksResult, C as CharPosition, a as LayoutCursor, I as Interval, b as LayoutLine, c as LayoutNextLineContext, d as LayoutNextLineResult, R as ReactiveLayoutBundle, e as ReactiveLayoutOptions, S as SegmentBreakKind, f as SegmentMeasureStats, g as analyzeAndMeasure, h as carveTextLineSlots, i as computeCharPositions, j as computeLineBreaks, l as layoutNextLine, r as reactiveLayout } from './reactive-layout-PiFwVaWS.cjs';
2
+ import { a as Node } from './node-Dd6wHSib.cjs';
3
+ import { G as Graph } from './graph-DgohqXK-.cjs';
4
4
 
5
5
  /**
6
6
  * MeasurementAdapter implementations (roadmap §7.1 — pluggable backends).
@@ -355,6 +355,17 @@ type ReactiveFlowLayoutOptions = {
355
355
  obstacles?: Obstacle[];
356
356
  /** Minimum slot width (px) below which a slot is discarded rather than squeezed. Default `20`. */
357
357
  minSlotWidth?: number;
358
+ /**
359
+ * Vertical gap (px) inserted after a hard-break segment (the spacing
360
+ * between paragraphs). When unset (or explicitly set to `null`), tracks
361
+ * the current `lineHeight` reactively — one line-height of visible
362
+ * paragraph gap, matching dense editorial layouts. Set to `0` for
363
+ * paragraph-preserving layout that reclaims the break line; set larger
364
+ * (e.g. `2 * lineHeight`) for looser manuscript settings. Reactive —
365
+ * update via `setParagraphSpacing(n)` or restore to track-lineHeight
366
+ * mode via `setParagraphSpacing(null)`.
367
+ */
368
+ paragraphSpacing?: number | null;
358
369
  };
359
370
  /** Result bundle from `reactiveFlowLayout`. */
360
371
  type ReactiveFlowLayoutBundle = {
@@ -365,6 +376,7 @@ type ReactiveFlowLayoutBundle = {
365
376
  setContainer: (c: FlowContainer) => void;
366
377
  setColumns: (c: FlowColumns) => void;
367
378
  setObstacles: (o: Obstacle[]) => void;
379
+ setParagraphSpacing: (ps: number | null) => void;
368
380
  segments: Node<PreparedSegment[]>;
369
381
  flowLines: Node<PositionedLine[]>;
370
382
  };
@@ -377,6 +389,17 @@ type FlowLinesResult = {
377
389
  * container couldn't fit all text. */
378
390
  cursor: LayoutCursor;
379
391
  };
392
+ /** Optional tuning knobs for {@link computeFlowLines}. */
393
+ type ComputeFlowLinesOptions = {
394
+ /**
395
+ * Vertical gap (px) inserted after a hard-break segment (the spacing
396
+ * between paragraphs). Defaults to `lineHeight` — one line-height of
397
+ * visible paragraph gap, which matches dense editorial layouts. Set to
398
+ * `0` for paragraph-preserving layout that reclaims the break line;
399
+ * set larger (e.g. `2 * lineHeight`) for looser manuscript settings.
400
+ */
401
+ paragraphSpacing?: number;
402
+ };
380
403
  /**
381
404
  * Lay out `segments` across N columns, wrapping each line around `obstacles`.
382
405
  * Pure function — no reactive wiring. Exported for testing and for consumers
@@ -385,7 +408,7 @@ type FlowLinesResult = {
385
408
  * `carveTextLineSlots` guarantees left-to-right-ordered, non-overlapping slots,
386
409
  * so this function does not sort them.
387
410
  */
388
- declare function computeFlowLines(segments: PreparedSegment[], container: FlowContainer, columns: FlowColumns, obstacles: Obstacle[], lineHeight: number, minSlotWidth: number): FlowLinesResult;
411
+ declare function computeFlowLines(segments: PreparedSegment[], container: FlowContainer, columns: FlowColumns, obstacles: Obstacle[], lineHeight: number, minSlotWidth: number, opts?: ComputeFlowLinesOptions): FlowLinesResult;
389
412
  /**
390
413
  * Create a reactive flow-layout graph: N columns of text wrapping around
391
414
  * shape obstacles. Re-runs only the dependent derived nodes on any input
@@ -433,6 +456,7 @@ type index_CircleObstacle = CircleObstacle;
433
456
  type index_CliMeasureAdapter = CliMeasureAdapter;
434
457
  declare const index_CliMeasureAdapter: typeof CliMeasureAdapter;
435
458
  type index_CliMeasureAdapterOptions = CliMeasureAdapterOptions;
459
+ type index_ComputeFlowLinesOptions = ComputeFlowLinesOptions;
436
460
  type index_ContentBlock = ContentBlock;
437
461
  type index_FlowColumns = FlowColumns;
438
462
  type index_FlowContainer = FlowContainer;
@@ -485,7 +509,7 @@ declare const index_reactiveFlowLayout: typeof reactiveFlowLayout;
485
509
  declare const index_reactiveLayout: typeof reactiveLayout;
486
510
  declare const index_rectIntervalForBand: typeof rectIntervalForBand;
487
511
  declare namespace index {
488
- export { type index_BlockAdapters as BlockAdapters, index_CanvasMeasureAdapter as CanvasMeasureAdapter, type index_CanvasMeasureAdapterOptions as CanvasMeasureAdapterOptions, type index_CanvasModule as CanvasModule, index_CharPosition as CharPosition, type index_CircleObstacle as CircleObstacle, index_CliMeasureAdapter as CliMeasureAdapter, type index_CliMeasureAdapterOptions as CliMeasureAdapterOptions, type index_ContentBlock as ContentBlock, type index_FlowColumns as FlowColumns, type index_FlowContainer as FlowContainer, type index_FlowLinesResult as FlowLinesResult, type index_ImageMeasurer as ImageMeasurer, index_ImageSizeAdapter as ImageSizeAdapter, index_Interval as Interval, index_LayoutCursor as LayoutCursor, index_LayoutLine as LayoutLine, index_LayoutNextLineContext as LayoutNextLineContext, index_LayoutNextLineResult as LayoutNextLineResult, index_LineBreaksResult as LineBreaksResult, type index_MeasuredBlock as MeasuredBlock, index_MeasurementAdapter as MeasurementAdapter, index_NodeCanvasMeasureAdapter as NodeCanvasMeasureAdapter, type index_Obstacle as Obstacle, type index_PositionedBlock as PositionedBlock, type index_PositionedLine as PositionedLine, index_PrecomputedAdapter as PrecomputedAdapter, type index_PrecomputedAdapterOptions as PrecomputedAdapterOptions, index_PreparedSegment as PreparedSegment, type index_ReactiveBlockLayoutBundle as ReactiveBlockLayoutBundle, type index_ReactiveBlockLayoutOptions as ReactiveBlockLayoutOptions, type index_ReactiveFlowLayoutBundle as ReactiveFlowLayoutBundle, type index_ReactiveFlowLayoutOptions as ReactiveFlowLayoutOptions, index_ReactiveLayoutBundle as ReactiveLayoutBundle, index_ReactiveLayoutOptions as ReactiveLayoutOptions, type index_RectObstacle as RectObstacle, index_SegmentBreakKind as SegmentBreakKind, index_SegmentMeasureStats as SegmentMeasureStats, index_SvgBoundsAdapter as SvgBoundsAdapter, type index_SvgMeasurer as SvgMeasurer, index_analyzeAndMeasure as analyzeAndMeasure, index_carveTextLineSlots as carveTextLineSlots, index_circleIntervalForBand as circleIntervalForBand, index_computeBlockFlow as computeBlockFlow, index_computeCharPositions as computeCharPositions, index_computeFlowLines as computeFlowLines, index_computeLineBreaks as computeLineBreaks, index_computeTotalHeight as computeTotalHeight, index_layoutNextLine as layoutNextLine, index_measureBlock as measureBlock, index_measureBlocks as measureBlocks, index_reactiveBlockLayout as reactiveBlockLayout, index_reactiveFlowLayout as reactiveFlowLayout, index_reactiveLayout as reactiveLayout, index_rectIntervalForBand as rectIntervalForBand };
512
+ export { type index_BlockAdapters as BlockAdapters, index_CanvasMeasureAdapter as CanvasMeasureAdapter, type index_CanvasMeasureAdapterOptions as CanvasMeasureAdapterOptions, type index_CanvasModule as CanvasModule, index_CharPosition as CharPosition, type index_CircleObstacle as CircleObstacle, index_CliMeasureAdapter as CliMeasureAdapter, type index_CliMeasureAdapterOptions as CliMeasureAdapterOptions, type index_ComputeFlowLinesOptions as ComputeFlowLinesOptions, type index_ContentBlock as ContentBlock, type index_FlowColumns as FlowColumns, type index_FlowContainer as FlowContainer, type index_FlowLinesResult as FlowLinesResult, type index_ImageMeasurer as ImageMeasurer, index_ImageSizeAdapter as ImageSizeAdapter, index_Interval as Interval, index_LayoutCursor as LayoutCursor, index_LayoutLine as LayoutLine, index_LayoutNextLineContext as LayoutNextLineContext, index_LayoutNextLineResult as LayoutNextLineResult, index_LineBreaksResult as LineBreaksResult, type index_MeasuredBlock as MeasuredBlock, index_MeasurementAdapter as MeasurementAdapter, index_NodeCanvasMeasureAdapter as NodeCanvasMeasureAdapter, type index_Obstacle as Obstacle, type index_PositionedBlock as PositionedBlock, type index_PositionedLine as PositionedLine, index_PrecomputedAdapter as PrecomputedAdapter, type index_PrecomputedAdapterOptions as PrecomputedAdapterOptions, index_PreparedSegment as PreparedSegment, type index_ReactiveBlockLayoutBundle as ReactiveBlockLayoutBundle, type index_ReactiveBlockLayoutOptions as ReactiveBlockLayoutOptions, type index_ReactiveFlowLayoutBundle as ReactiveFlowLayoutBundle, type index_ReactiveFlowLayoutOptions as ReactiveFlowLayoutOptions, index_ReactiveLayoutBundle as ReactiveLayoutBundle, index_ReactiveLayoutOptions as ReactiveLayoutOptions, type index_RectObstacle as RectObstacle, index_SegmentBreakKind as SegmentBreakKind, index_SegmentMeasureStats as SegmentMeasureStats, index_SvgBoundsAdapter as SvgBoundsAdapter, type index_SvgMeasurer as SvgMeasurer, index_analyzeAndMeasure as analyzeAndMeasure, index_carveTextLineSlots as carveTextLineSlots, index_circleIntervalForBand as circleIntervalForBand, index_computeBlockFlow as computeBlockFlow, index_computeCharPositions as computeCharPositions, index_computeFlowLines as computeFlowLines, index_computeLineBreaks as computeLineBreaks, index_computeTotalHeight as computeTotalHeight, index_layoutNextLine as layoutNextLine, index_measureBlock as measureBlock, index_measureBlocks as measureBlocks, index_reactiveBlockLayout as reactiveBlockLayout, index_reactiveFlowLayout as reactiveFlowLayout, index_reactiveLayout as reactiveLayout, index_rectIntervalForBand as rectIntervalForBand };
489
513
  }
490
514
 
491
- export { rectIntervalForBand as A, type BlockAdapters as B, CanvasMeasureAdapter as C, type FlowColumns as F, type ImageMeasurer as I, type MeasuredBlock as M, NodeCanvasMeasureAdapter as N, type Obstacle as O, type PositionedBlock as P, type ReactiveBlockLayoutBundle as R, SvgBoundsAdapter as S, type CanvasMeasureAdapterOptions as a, type CanvasModule as b, type CircleObstacle as c, CliMeasureAdapter as d, type CliMeasureAdapterOptions as e, type ContentBlock as f, type FlowContainer as g, type FlowLinesResult as h, index as i, ImageSizeAdapter as j, type PositionedLine as k, PrecomputedAdapter as l, type PrecomputedAdapterOptions as m, type ReactiveBlockLayoutOptions as n, type ReactiveFlowLayoutBundle as o, type ReactiveFlowLayoutOptions as p, type RectObstacle as q, type SvgMeasurer as r, circleIntervalForBand as s, computeBlockFlow as t, computeFlowLines as u, computeTotalHeight as v, measureBlock as w, measureBlocks as x, reactiveBlockLayout as y, reactiveFlowLayout as z };
515
+ export { reactiveFlowLayout as A, type BlockAdapters as B, CanvasMeasureAdapter as C, rectIntervalForBand as D, type FlowColumns as F, type ImageMeasurer as I, type MeasuredBlock as M, NodeCanvasMeasureAdapter as N, type Obstacle as O, type PositionedBlock as P, type ReactiveBlockLayoutBundle as R, SvgBoundsAdapter as S, type CanvasMeasureAdapterOptions as a, type CanvasModule as b, type CircleObstacle as c, CliMeasureAdapter as d, type CliMeasureAdapterOptions as e, type ComputeFlowLinesOptions as f, type ContentBlock as g, type FlowContainer as h, index as i, type FlowLinesResult as j, ImageSizeAdapter as k, type PositionedLine as l, PrecomputedAdapter as m, type PrecomputedAdapterOptions as n, type ReactiveBlockLayoutOptions as o, type ReactiveFlowLayoutBundle as p, type ReactiveFlowLayoutOptions as q, type RectObstacle as r, type SvgMeasurer as s, circleIntervalForBand as t, computeBlockFlow as u, computeFlowLines as v, computeTotalHeight as w, measureBlock as x, measureBlocks as y, reactiveBlockLayout as z };
@@ -1,5 +1,5 @@
1
- import { a as Graph } from './graph-DNCrvZSn.cjs';
2
- import { M as MeasurementAdapter } from './reactive-layout-MQP--J3F.cjs';
1
+ import { G as Graph } from './graph-DgohqXK-.cjs';
2
+ import { M as MeasurementAdapter } from './reactive-layout-PiFwVaWS.cjs';
3
3
 
4
4
  /**
5
5
  * Three-pane demo shell (roadmap §7.2).
@@ -86,17 +86,17 @@ type DemoShellHandle = {
86
86
  */
87
87
  declare function demoShell(opts?: DemoShellOptions): DemoShellHandle;
88
88
 
89
- type demoShell$1_DemoShellHandle = DemoShellHandle;
90
- type demoShell$1_DemoShellOptions = DemoShellOptions;
91
- type demoShell$1_FullscreenPane = FullscreenPane;
92
- type demoShell$1_GraphLabelSize = GraphLabelSize;
93
- type demoShell$1_HighlightCallbacks = HighlightCallbacks;
94
- type demoShell$1_HoverPaneType = HoverPaneType;
95
- type demoShell$1_HoverTarget = HoverTarget;
96
- type demoShell$1_NodeRegistry = NodeRegistry;
97
- declare const demoShell$1_demoShell: typeof demoShell;
98
- declare namespace demoShell$1 {
99
- export { type demoShell$1_DemoShellHandle as DemoShellHandle, type demoShell$1_DemoShellOptions as DemoShellOptions, type demoShell$1_FullscreenPane as FullscreenPane, type demoShell$1_GraphLabelSize as GraphLabelSize, type demoShell$1_HighlightCallbacks as HighlightCallbacks, type demoShell$1_HoverPaneType as HoverPaneType, type demoShell$1_HoverTarget as HoverTarget, type demoShell$1_NodeRegistry as NodeRegistry, demoShell$1_demoShell as demoShell };
89
+ type index_DemoShellHandle = DemoShellHandle;
90
+ type index_DemoShellOptions = DemoShellOptions;
91
+ type index_FullscreenPane = FullscreenPane;
92
+ type index_GraphLabelSize = GraphLabelSize;
93
+ type index_HighlightCallbacks = HighlightCallbacks;
94
+ type index_HoverPaneType = HoverPaneType;
95
+ type index_HoverTarget = HoverTarget;
96
+ type index_NodeRegistry = NodeRegistry;
97
+ declare const index_demoShell: typeof demoShell;
98
+ declare namespace index {
99
+ export { type index_DemoShellHandle as DemoShellHandle, type index_DemoShellOptions as DemoShellOptions, type index_FullscreenPane as FullscreenPane, type index_GraphLabelSize as GraphLabelSize, type index_HighlightCallbacks as HighlightCallbacks, type index_HoverPaneType as HoverPaneType, type index_HoverTarget as HoverTarget, type index_NodeRegistry as NodeRegistry, index_demoShell as demoShell };
100
100
  }
101
101
 
102
- export { type DemoShellHandle as D, type FullscreenPane as F, type GraphLabelSize as G, type HighlightCallbacks as H, type NodeRegistry as N, type DemoShellOptions as a, type HoverPaneType as b, type HoverTarget as c, demoShell$1 as d, demoShell as e };
102
+ export { type DemoShellHandle as D, type FullscreenPane as F, type GraphLabelSize as G, type HighlightCallbacks as H, type NodeRegistry as N, type DemoShellOptions as a, type HoverPaneType as b, type HoverTarget as c, demoShell as d, index as i };