@graphrefly/graphrefly 0.45.0 → 0.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (714) hide show
  1. package/README.md +1 -2
  2. package/dist/_internal-B23BagFd.d.cts +33 -0
  3. package/dist/_internal-B23BagFd.d.ts +33 -0
  4. package/dist/adaptive-rate-limiter-Dch_xYIi.d.cts +111 -0
  5. package/dist/adaptive-rate-limiter-Dch_xYIi.d.ts +111 -0
  6. package/dist/agents-C0Ji9ldU.d.cts +629 -0
  7. package/dist/agents-C9zexT7I.d.ts +629 -0
  8. package/dist/audit-BAXb3VOg.d.ts +246 -0
  9. package/dist/audit-C_bPfkqS.d.cts +246 -0
  10. package/dist/backoff-7KIK3WQW.js +24 -0
  11. package/dist/backoff-7KIK3WQW.js.map +1 -0
  12. package/dist/backoff-Bnb9OoPh.d.cts +6 -0
  13. package/dist/backoff-Bnb9OoPh.d.ts +6 -0
  14. package/dist/base/composition/index.cjs +811 -0
  15. package/dist/base/composition/index.cjs.map +1 -0
  16. package/dist/base/composition/index.d.cts +469 -0
  17. package/dist/base/composition/index.d.ts +469 -0
  18. package/dist/base/composition/index.js +40 -0
  19. package/dist/base/composition/index.js.map +1 -0
  20. package/dist/base/index.cjs +6336 -0
  21. package/dist/base/index.cjs.map +1 -0
  22. package/dist/base/index.d.cts +22 -0
  23. package/dist/base/index.d.ts +22 -0
  24. package/dist/base/index.js +259 -0
  25. package/dist/base/index.js.map +1 -0
  26. package/dist/base/io/index.cjs +3270 -0
  27. package/dist/base/io/index.cjs.map +1 -0
  28. package/dist/base/io/index.d.cts +2245 -0
  29. package/dist/base/io/index.d.ts +2245 -0
  30. package/dist/base/io/index.js +117 -0
  31. package/dist/base/io/index.js.map +1 -0
  32. package/dist/base/meta/index.cjs +43 -0
  33. package/dist/base/meta/index.cjs.map +1 -0
  34. package/dist/base/meta/index.d.cts +45 -0
  35. package/dist/base/meta/index.d.ts +45 -0
  36. package/dist/base/meta/index.js +13 -0
  37. package/dist/base/meta/index.js.map +1 -0
  38. package/dist/base/mutation/index.cjs +200 -0
  39. package/dist/base/mutation/index.cjs.map +1 -0
  40. package/dist/base/mutation/index.d.cts +177 -0
  41. package/dist/base/mutation/index.d.ts +177 -0
  42. package/dist/base/mutation/index.js +22 -0
  43. package/dist/base/mutation/index.js.map +1 -0
  44. package/dist/base/render/index.cjs +1120 -0
  45. package/dist/base/render/index.cjs.map +1 -0
  46. package/dist/base/render/index.d.cts +227 -0
  47. package/dist/base/render/index.d.ts +227 -0
  48. package/dist/base/render/index.js +24 -0
  49. package/dist/base/render/index.js.map +1 -0
  50. package/dist/base/sources/browser/index.cjs +172 -0
  51. package/dist/base/sources/browser/index.cjs.map +1 -0
  52. package/dist/base/sources/browser/index.d.cts +84 -0
  53. package/dist/base/sources/browser/index.d.ts +84 -0
  54. package/dist/base/sources/browser/index.js +151 -0
  55. package/dist/base/sources/browser/index.js.map +1 -0
  56. package/dist/base/sources/event/index.cjs +98 -0
  57. package/dist/base/sources/event/index.cjs.map +1 -0
  58. package/dist/base/sources/event/index.d.cts +91 -0
  59. package/dist/base/sources/event/index.d.ts +91 -0
  60. package/dist/base/sources/event/index.js +13 -0
  61. package/dist/base/sources/event/index.js.map +1 -0
  62. package/dist/base/sources/index.cjs +755 -0
  63. package/dist/base/sources/index.cjs.map +1 -0
  64. package/dist/base/sources/index.d.cts +357 -0
  65. package/dist/base/sources/index.d.ts +357 -0
  66. package/dist/base/sources/index.js +42 -0
  67. package/dist/base/sources/index.js.map +1 -0
  68. package/dist/base/sources/node/index.cjs +320 -0
  69. package/dist/base/sources/node/index.cjs.map +1 -0
  70. package/dist/base/sources/node/index.d.cts +185 -0
  71. package/dist/base/sources/node/index.d.ts +185 -0
  72. package/dist/base/sources/node/index.js +306 -0
  73. package/dist/base/sources/node/index.js.map +1 -0
  74. package/dist/base/utils/index.cjs +37 -0
  75. package/dist/base/utils/index.cjs.map +1 -0
  76. package/dist/base/utils/index.d.cts +37 -0
  77. package/dist/base/utils/index.d.ts +37 -0
  78. package/dist/base/utils/index.js +11 -0
  79. package/dist/base/utils/index.js.map +1 -0
  80. package/dist/base/worker/index.cjs +548 -0
  81. package/dist/base/worker/index.cjs.map +1 -0
  82. package/dist/base/worker/index.d.cts +207 -0
  83. package/dist/base/worker/index.d.ts +207 -0
  84. package/dist/base/worker/index.js +20 -0
  85. package/dist/base/worker/index.js.map +1 -0
  86. package/dist/breaker-C9skL3d8.d.ts +175 -0
  87. package/dist/breaker-ugSdq54q.d.cts +175 -0
  88. package/dist/cascading-CSSbKGrJ.d.ts +199 -0
  89. package/dist/cascading-baGkiihI.d.cts +199 -0
  90. package/dist/chunk-255UCBG4.js +58 -0
  91. package/dist/chunk-255UCBG4.js.map +1 -0
  92. package/dist/chunk-2LO3EL4W.js +1 -0
  93. package/dist/chunk-2LO3EL4W.js.map +1 -0
  94. package/dist/chunk-2OB3CEJS.js +1065 -0
  95. package/dist/chunk-2OB3CEJS.js.map +1 -0
  96. package/dist/chunk-36NMM65U.js +144 -0
  97. package/dist/chunk-36NMM65U.js.map +1 -0
  98. package/dist/chunk-3CEXCBN6.js +1 -0
  99. package/dist/chunk-3CEXCBN6.js.map +1 -0
  100. package/dist/chunk-3MUSLI6E.js +105 -0
  101. package/dist/chunk-3MUSLI6E.js.map +1 -0
  102. package/dist/chunk-3PSLNJDU.js +884 -0
  103. package/dist/chunk-3PSLNJDU.js.map +1 -0
  104. package/dist/chunk-3QZY5BI7.js +92 -0
  105. package/dist/chunk-3QZY5BI7.js.map +1 -0
  106. package/dist/chunk-42FQ27MQ.js +594 -0
  107. package/dist/chunk-42FQ27MQ.js.map +1 -0
  108. package/dist/chunk-4GYMCUDZ.js +1085 -0
  109. package/dist/chunk-4GYMCUDZ.js.map +1 -0
  110. package/dist/chunk-4S53H2KR.js +382 -0
  111. package/dist/chunk-4S53H2KR.js.map +1 -0
  112. package/dist/chunk-4XCHZRUJ.js +128 -0
  113. package/dist/chunk-4XCHZRUJ.js.map +1 -0
  114. package/dist/chunk-5THCXDWY.js +725 -0
  115. package/dist/chunk-5THCXDWY.js.map +1 -0
  116. package/dist/chunk-6XZYT4SW.js +256 -0
  117. package/dist/chunk-6XZYT4SW.js.map +1 -0
  118. package/dist/chunk-7EGRP2VX.js +76 -0
  119. package/dist/chunk-7EGRP2VX.js.map +1 -0
  120. package/dist/chunk-A7KV5UK4.js +150 -0
  121. package/dist/chunk-A7KV5UK4.js.map +1 -0
  122. package/dist/chunk-APY2SS5X.js +156 -0
  123. package/dist/chunk-APY2SS5X.js.map +1 -0
  124. package/dist/chunk-AZDQPQ3V.js +66 -0
  125. package/dist/chunk-AZDQPQ3V.js.map +1 -0
  126. package/dist/chunk-BU3SEFA5.js +90 -0
  127. package/dist/chunk-BU3SEFA5.js.map +1 -0
  128. package/dist/chunk-BXGZFGZ4.js +189 -0
  129. package/dist/chunk-BXGZFGZ4.js.map +1 -0
  130. package/dist/chunk-CGHORL6G.js +579 -0
  131. package/dist/chunk-CGHORL6G.js.map +1 -0
  132. package/dist/chunk-CXANAIZU.js +530 -0
  133. package/dist/chunk-CXANAIZU.js.map +1 -0
  134. package/dist/chunk-CZQHCKKG.js +1 -0
  135. package/dist/chunk-CZQHCKKG.js.map +1 -0
  136. package/dist/chunk-DKNHAICT.js +133 -0
  137. package/dist/chunk-DKNHAICT.js.map +1 -0
  138. package/dist/chunk-DM4OMPWK.js +584 -0
  139. package/dist/chunk-DM4OMPWK.js.map +1 -0
  140. package/dist/chunk-DMSNO6ZB.js +452 -0
  141. package/dist/chunk-DMSNO6ZB.js.map +1 -0
  142. package/dist/chunk-E5OZPDIW.js +229 -0
  143. package/dist/chunk-E5OZPDIW.js.map +1 -0
  144. package/dist/chunk-EVYY4X5A.js +509 -0
  145. package/dist/chunk-EVYY4X5A.js.map +1 -0
  146. package/dist/chunk-FDFD67UO.js +1 -0
  147. package/dist/chunk-FDFD67UO.js.map +1 -0
  148. package/dist/chunk-FMPF42Q4.js +13 -0
  149. package/dist/chunk-FMPF42Q4.js.map +1 -0
  150. package/dist/chunk-FR6RGA3B.js +1277 -0
  151. package/dist/chunk-FR6RGA3B.js.map +1 -0
  152. package/dist/chunk-FW23JYNQ.js +454 -0
  153. package/dist/chunk-FW23JYNQ.js.map +1 -0
  154. package/dist/chunk-GBCENOLN.js +1575 -0
  155. package/dist/chunk-GBCENOLN.js.map +1 -0
  156. package/dist/chunk-HL7HUJIX.js +1 -0
  157. package/dist/chunk-HL7HUJIX.js.map +1 -0
  158. package/dist/chunk-HULCUY35.js +2508 -0
  159. package/dist/chunk-HULCUY35.js.map +1 -0
  160. package/dist/chunk-IHTWQEDR.js +169 -0
  161. package/dist/chunk-IHTWQEDR.js.map +1 -0
  162. package/dist/chunk-IJRR6YAI.js +128 -0
  163. package/dist/chunk-IJRR6YAI.js.map +1 -0
  164. package/dist/chunk-JGFRAFDL.js +221 -0
  165. package/dist/chunk-JGFRAFDL.js.map +1 -0
  166. package/dist/chunk-KIIXR252.js +211 -0
  167. package/dist/chunk-KIIXR252.js.map +1 -0
  168. package/dist/chunk-KN3H5CNT.js +11 -0
  169. package/dist/chunk-KN3H5CNT.js.map +1 -0
  170. package/dist/chunk-KPG3DGLA.js +1 -0
  171. package/dist/chunk-KPG3DGLA.js.map +1 -0
  172. package/dist/chunk-KRNQ6RGQ.js +1 -0
  173. package/dist/chunk-KRNQ6RGQ.js.map +1 -0
  174. package/dist/chunk-LBAJK24K.js +1071 -0
  175. package/dist/chunk-LBAJK24K.js.map +1 -0
  176. package/dist/chunk-MLTPJMH6.js +417 -0
  177. package/dist/chunk-MLTPJMH6.js.map +1 -0
  178. package/dist/chunk-N3SZ7BMH.js +95 -0
  179. package/dist/chunk-N3SZ7BMH.js.map +1 -0
  180. package/dist/chunk-NDUD3IMO.js +540 -0
  181. package/dist/chunk-NDUD3IMO.js.map +1 -0
  182. package/dist/chunk-NY2PYHNC.js +873 -0
  183. package/dist/chunk-NY2PYHNC.js.map +1 -0
  184. package/dist/chunk-O3MT7DYI.js +225 -0
  185. package/dist/chunk-O3MT7DYI.js.map +1 -0
  186. package/dist/chunk-OCUDSN63.js +2386 -0
  187. package/dist/chunk-OCUDSN63.js.map +1 -0
  188. package/dist/chunk-OIWU3NYV.js +199 -0
  189. package/dist/chunk-OIWU3NYV.js.map +1 -0
  190. package/dist/chunk-OO5BM6CJ.js +1153 -0
  191. package/dist/chunk-OO5BM6CJ.js.map +1 -0
  192. package/dist/chunk-OQUIJT7A.js +1 -0
  193. package/dist/chunk-OQUIJT7A.js.map +1 -0
  194. package/dist/chunk-P5LBT622.js +105 -0
  195. package/dist/chunk-P5LBT622.js.map +1 -0
  196. package/dist/chunk-PKGQG5QQ.js +519 -0
  197. package/dist/chunk-PKGQG5QQ.js.map +1 -0
  198. package/dist/chunk-PKPO3JTZ.js +561 -0
  199. package/dist/chunk-PKPO3JTZ.js.map +1 -0
  200. package/dist/chunk-PL5UDIQ5.js +118 -0
  201. package/dist/chunk-PL5UDIQ5.js.map +1 -0
  202. package/dist/chunk-PZWISPIQ.js +432 -0
  203. package/dist/chunk-PZWISPIQ.js.map +1 -0
  204. package/dist/chunk-Q3EYOCZB.js +510 -0
  205. package/dist/chunk-Q3EYOCZB.js.map +1 -0
  206. package/dist/chunk-QMBYUVRL.js +15 -0
  207. package/dist/chunk-QMBYUVRL.js.map +1 -0
  208. package/dist/chunk-RAGGHLCV.js +200 -0
  209. package/dist/chunk-RAGGHLCV.js.map +1 -0
  210. package/dist/chunk-RGL53X5G.js +574 -0
  211. package/dist/chunk-RGL53X5G.js.map +1 -0
  212. package/dist/chunk-RJOG4IJU.js +1039 -0
  213. package/dist/chunk-RJOG4IJU.js.map +1 -0
  214. package/dist/chunk-SOOKUYVM.js +403 -0
  215. package/dist/chunk-SOOKUYVM.js.map +1 -0
  216. package/dist/chunk-T5BN5KG7.js +1 -0
  217. package/dist/chunk-T5BN5KG7.js.map +1 -0
  218. package/dist/chunk-TP7244Y6.js +207 -0
  219. package/dist/chunk-TP7244Y6.js.map +1 -0
  220. package/dist/chunk-TSBFTJKM.js +57 -0
  221. package/dist/chunk-TSBFTJKM.js.map +1 -0
  222. package/dist/chunk-URQ2CBBF.js +143 -0
  223. package/dist/chunk-URQ2CBBF.js.map +1 -0
  224. package/dist/chunk-W2BOPXTI.js +1 -0
  225. package/dist/chunk-W2BOPXTI.js.map +1 -0
  226. package/dist/chunk-WKSWLSCX.js +207 -0
  227. package/dist/chunk-WKSWLSCX.js.map +1 -0
  228. package/dist/chunk-Y52CS6YA.js +88 -0
  229. package/dist/chunk-Y52CS6YA.js.map +1 -0
  230. package/dist/chunk-YCBUWK77.js +92 -0
  231. package/dist/chunk-YCBUWK77.js.map +1 -0
  232. package/dist/chunk-YJ4U2D2C.js +314 -0
  233. package/dist/chunk-YJ4U2D2C.js.map +1 -0
  234. package/dist/chunk-Z4YXAUDN.js +239 -0
  235. package/dist/chunk-Z4YXAUDN.js.map +1 -0
  236. package/dist/chunk-Z6EGP5D7.js +92 -0
  237. package/dist/chunk-Z6EGP5D7.js.map +1 -0
  238. package/dist/compat/index.cjs +3083 -2
  239. package/dist/compat/index.cjs.map +1 -1
  240. package/dist/compat/index.d.cts +116 -1
  241. package/dist/compat/index.d.ts +116 -1
  242. package/dist/compat/index.js +175 -2
  243. package/dist/compat/index.js.map +1 -1
  244. package/dist/compat/jotai/index.cjs +130 -2
  245. package/dist/compat/jotai/index.cjs.map +1 -1
  246. package/dist/compat/jotai/index.d.cts +2 -1
  247. package/dist/compat/jotai/index.d.ts +2 -1
  248. package/dist/compat/jotai/index.js +7 -2
  249. package/dist/compat/jotai/index.js.map +1 -1
  250. package/dist/compat/nanostores/index.cjs +186 -2
  251. package/dist/compat/nanostores/index.cjs.map +1 -1
  252. package/dist/compat/nanostores/index.d.cts +2 -1
  253. package/dist/compat/nanostores/index.d.ts +2 -1
  254. package/dist/compat/nanostores/index.js +21 -2
  255. package/dist/compat/nanostores/index.js.map +1 -1
  256. package/dist/compat/nestjs/index.cjs +2224 -2
  257. package/dist/compat/nestjs/index.cjs.map +1 -1
  258. package/dist/compat/nestjs/index.d.cts +10 -1
  259. package/dist/compat/nestjs/index.d.ts +10 -1
  260. package/dist/compat/nestjs/index.js +77 -2
  261. package/dist/compat/nestjs/index.js.map +1 -1
  262. package/dist/compat/react/index.cjs +95 -2
  263. package/dist/compat/react/index.cjs.map +1 -1
  264. package/dist/compat/react/index.d.cts +2 -1
  265. package/dist/compat/react/index.d.ts +2 -1
  266. package/dist/compat/react/index.js +11 -2
  267. package/dist/compat/react/index.js.map +1 -1
  268. package/dist/compat/solid/index.cjs +82 -2
  269. package/dist/compat/solid/index.cjs.map +1 -1
  270. package/dist/compat/solid/index.d.cts +2 -1
  271. package/dist/compat/solid/index.d.ts +2 -1
  272. package/dist/compat/solid/index.js +11 -2
  273. package/dist/compat/solid/index.js.map +1 -1
  274. package/dist/compat/svelte/index.cjs +85 -2
  275. package/dist/compat/svelte/index.cjs.map +1 -1
  276. package/dist/compat/svelte/index.d.cts +2 -1
  277. package/dist/compat/svelte/index.d.ts +2 -1
  278. package/dist/compat/svelte/index.js +11 -2
  279. package/dist/compat/svelte/index.js.map +1 -1
  280. package/dist/compat/vue/index.cjs +100 -2
  281. package/dist/compat/vue/index.cjs.map +1 -1
  282. package/dist/compat/vue/index.d.cts +3 -1
  283. package/dist/compat/vue/index.d.ts +3 -1
  284. package/dist/compat/vue/index.js +11 -2
  285. package/dist/compat/vue/index.js.map +1 -1
  286. package/dist/compat/zustand/index.cjs +50 -2
  287. package/dist/compat/zustand/index.cjs.map +1 -1
  288. package/dist/compat/zustand/index.d.cts +2 -1
  289. package/dist/compat/zustand/index.d.ts +2 -1
  290. package/dist/compat/zustand/index.js +7 -2
  291. package/dist/compat/zustand/index.js.map +1 -1
  292. package/dist/distill-De6Rnn15.d.cts +48 -0
  293. package/dist/distill-De6Rnn15.d.ts +48 -0
  294. package/dist/external-register-CWyroXb_.d.cts +138 -0
  295. package/dist/external-register-CWyroXb_.d.ts +138 -0
  296. package/dist/fallback-Bx46zqky.d.cts +243 -0
  297. package/dist/fallback-pIWW8A2d.d.ts +243 -0
  298. package/dist/guarded-execution-BcdtxeBk.d.ts +207 -0
  299. package/dist/guarded-execution-C-3hnP6A.d.cts +207 -0
  300. package/dist/index-5SU_O78r.d.cts +754 -0
  301. package/dist/index-B6pxYJzO.d.cts +36 -0
  302. package/dist/index-B6pxYJzO.d.ts +36 -0
  303. package/dist/index-BFsng6v1.d.cts +44 -0
  304. package/dist/index-BFsng6v1.d.ts +44 -0
  305. package/dist/index-Bg-LwEt-.d.cts +45 -0
  306. package/dist/index-Bg-LwEt-.d.ts +45 -0
  307. package/dist/index-Brp888t0.d.cts +127 -0
  308. package/dist/index-Brp888t0.d.ts +127 -0
  309. package/dist/index-CDfk6jHN.d.cts +37 -0
  310. package/dist/index-CDfk6jHN.d.ts +37 -0
  311. package/dist/index-CEXCtYYJ.d.ts +754 -0
  312. package/dist/index-DLAxYaN5.d.cts +169 -0
  313. package/dist/index-DLAxYaN5.d.ts +169 -0
  314. package/dist/index-DeWbQzMe.d.cts +34 -0
  315. package/dist/index-DeWbQzMe.d.ts +34 -0
  316. package/dist/index-dX9IzPqj.d.cts +86 -0
  317. package/dist/index-dX9IzPqj.d.ts +86 -0
  318. package/dist/index.cjs +25950 -0
  319. package/dist/index.cjs.map +1 -1
  320. package/dist/index.d.cts +56 -42
  321. package/dist/index.d.ts +56 -42
  322. package/dist/index.js +849 -0
  323. package/dist/index.js.map +1 -1
  324. package/dist/layout-types-B5aiHYgk.d.cts +72 -0
  325. package/dist/layout-types-B5aiHYgk.d.ts +72 -0
  326. package/dist/memory-composers-BryDrRBX.d.cts +529 -0
  327. package/dist/memory-composers-CVQqPYEV.d.ts +529 -0
  328. package/dist/observable-BXQoW1P-.d.cts +36 -0
  329. package/dist/observable-BXQoW1P-.d.ts +36 -0
  330. package/dist/pipeline-graph-Ce47CB6Y.d.cts +145 -0
  331. package/dist/pipeline-graph-DXCwY9vG.d.ts +145 -0
  332. package/dist/presets/ai/index.cjs +4377 -0
  333. package/dist/presets/ai/index.cjs.map +1 -0
  334. package/dist/presets/ai/index.d.cts +98 -0
  335. package/dist/presets/ai/index.d.ts +98 -0
  336. package/dist/presets/ai/index.js +54 -0
  337. package/dist/presets/ai/index.js.map +1 -0
  338. package/dist/presets/harness/index.cjs +5929 -0
  339. package/dist/presets/harness/index.cjs.map +1 -0
  340. package/dist/presets/harness/index.d.cts +566 -0
  341. package/dist/presets/harness/index.d.ts +566 -0
  342. package/dist/presets/harness/index.js +71 -0
  343. package/dist/presets/harness/index.js.map +1 -0
  344. package/dist/presets/index.cjs +9782 -0
  345. package/dist/presets/index.cjs.map +1 -0
  346. package/dist/presets/index.d.cts +28 -0
  347. package/dist/presets/index.d.ts +28 -0
  348. package/dist/presets/index.js +129 -0
  349. package/dist/presets/index.js.map +1 -0
  350. package/dist/presets/inspect/index.cjs +1087 -0
  351. package/dist/presets/inspect/index.cjs.map +1 -0
  352. package/dist/presets/inspect/index.d.cts +172 -0
  353. package/dist/presets/inspect/index.d.ts +172 -0
  354. package/dist/presets/inspect/index.js +21 -0
  355. package/dist/presets/inspect/index.js.map +1 -0
  356. package/dist/presets/resilience/index.cjs +1593 -0
  357. package/dist/presets/resilience/index.cjs.map +1 -0
  358. package/dist/presets/resilience/index.d.cts +205 -0
  359. package/dist/presets/resilience/index.d.ts +205 -0
  360. package/dist/presets/resilience/index.js +18 -0
  361. package/dist/presets/resilience/index.js.map +1 -0
  362. package/dist/rate-limiter-CEALq4N1.d.ts +559 -0
  363. package/dist/rate-limiter-DpVbSYdH.d.cts +559 -0
  364. package/dist/reactive-layout-fswlBUvX.d.cts +195 -0
  365. package/dist/reactive-layout-fswlBUvX.d.ts +195 -0
  366. package/dist/retry-BDbRZ_gx.d.ts +125 -0
  367. package/dist/retry-DWuhjvsA.d.cts +125 -0
  368. package/dist/solutions/index.cjs +8200 -0
  369. package/dist/solutions/index.cjs.map +1 -0
  370. package/dist/solutions/index.d.cts +23 -0
  371. package/dist/solutions/index.d.ts +23 -0
  372. package/dist/solutions/index.js +55 -0
  373. package/dist/solutions/index.js.map +1 -0
  374. package/dist/spawnable-5mDY501F.d.cts +746 -0
  375. package/dist/spawnable-D3lR0oQu.d.ts +746 -0
  376. package/dist/status-U-rUI79b.d.cts +84 -0
  377. package/dist/status-U-rUI79b.d.ts +84 -0
  378. package/dist/timeout-U5O4ESK3.js +12 -0
  379. package/dist/timeout-U5O4ESK3.js.map +1 -0
  380. package/dist/types-BB5Lw-pB.d.cts +442 -0
  381. package/dist/types-BB5Lw-pB.d.ts +442 -0
  382. package/dist/types-CJWIMJiZ.d.ts +548 -0
  383. package/dist/types-vCq7ShIm.d.cts +548 -0
  384. package/dist/utils/ai/browser.cjs +2169 -0
  385. package/dist/utils/ai/browser.cjs.map +1 -0
  386. package/dist/utils/ai/browser.d.cts +129 -0
  387. package/dist/utils/ai/browser.d.ts +129 -0
  388. package/dist/utils/ai/browser.js +255 -0
  389. package/dist/utils/ai/browser.js.map +1 -0
  390. package/dist/utils/ai/index.cjs +8468 -0
  391. package/dist/utils/ai/index.cjs.map +1 -0
  392. package/dist/utils/ai/index.d.cts +1777 -0
  393. package/dist/utils/ai/index.d.ts +1777 -0
  394. package/dist/utils/ai/index.js +173 -0
  395. package/dist/utils/ai/index.js.map +1 -0
  396. package/dist/utils/ai/node.cjs +648 -0
  397. package/dist/utils/ai/node.cjs.map +1 -0
  398. package/dist/utils/ai/node.d.cts +57 -0
  399. package/dist/utils/ai/node.d.ts +57 -0
  400. package/dist/utils/ai/node.js +84 -0
  401. package/dist/utils/ai/node.js.map +1 -0
  402. package/dist/utils/cqrs/index.cjs +1036 -0
  403. package/dist/utils/cqrs/index.cjs.map +1 -0
  404. package/dist/utils/cqrs/index.d.cts +438 -0
  405. package/dist/utils/cqrs/index.d.ts +438 -0
  406. package/dist/utils/cqrs/index.js +18 -0
  407. package/dist/utils/cqrs/index.js.map +1 -0
  408. package/dist/utils/demo-shell/index.cjs +865 -0
  409. package/dist/utils/demo-shell/index.cjs.map +1 -0
  410. package/dist/utils/demo-shell/index.d.cts +90 -0
  411. package/dist/utils/demo-shell/index.d.ts +90 -0
  412. package/dist/utils/demo-shell/index.js +13 -0
  413. package/dist/utils/demo-shell/index.js.map +1 -0
  414. package/dist/utils/domain-templates/index.cjs +732 -0
  415. package/dist/utils/domain-templates/index.cjs.map +1 -0
  416. package/dist/utils/domain-templates/index.d.cts +214 -0
  417. package/dist/utils/domain-templates/index.d.ts +214 -0
  418. package/dist/utils/domain-templates/index.js +17 -0
  419. package/dist/utils/domain-templates/index.js.map +1 -0
  420. package/dist/utils/graphspec/index.cjs +1174 -0
  421. package/dist/utils/graphspec/index.cjs.map +1 -0
  422. package/dist/utils/graphspec/index.d.cts +449 -0
  423. package/dist/utils/graphspec/index.d.ts +449 -0
  424. package/dist/utils/graphspec/index.js +35 -0
  425. package/dist/utils/graphspec/index.js.map +1 -0
  426. package/dist/utils/harness/index.cjs +656 -0
  427. package/dist/utils/harness/index.cjs.map +1 -0
  428. package/dist/utils/harness/index.d.cts +542 -0
  429. package/dist/utils/harness/index.d.ts +542 -0
  430. package/dist/utils/harness/index.js +56 -0
  431. package/dist/utils/harness/index.js.map +1 -0
  432. package/dist/utils/index.cjs +17609 -0
  433. package/dist/utils/index.cjs.map +1 -0
  434. package/dist/utils/index.d.cts +96 -0
  435. package/dist/utils/index.d.ts +96 -0
  436. package/dist/utils/index.js +514 -0
  437. package/dist/utils/index.js.map +1 -0
  438. package/dist/utils/inspect/index.cjs +807 -0
  439. package/dist/utils/inspect/index.cjs.map +1 -0
  440. package/dist/utils/inspect/index.d.cts +123 -0
  441. package/dist/utils/inspect/index.d.ts +123 -0
  442. package/dist/utils/inspect/index.js +30 -0
  443. package/dist/utils/inspect/index.js.map +1 -0
  444. package/dist/utils/job-queue/index.cjs +717 -0
  445. package/dist/utils/job-queue/index.cjs.map +1 -0
  446. package/dist/utils/job-queue/index.d.cts +200 -0
  447. package/dist/utils/job-queue/index.d.ts +200 -0
  448. package/dist/utils/job-queue/index.js +18 -0
  449. package/dist/utils/job-queue/index.js.map +1 -0
  450. package/dist/utils/memory/index.cjs +1451 -0
  451. package/dist/utils/memory/index.cjs.map +1 -0
  452. package/dist/utils/memory/index.d.cts +582 -0
  453. package/dist/utils/memory/index.d.ts +582 -0
  454. package/dist/utils/memory/index.js +19 -0
  455. package/dist/utils/memory/index.js.map +1 -0
  456. package/dist/utils/messaging/index.cjs +666 -0
  457. package/dist/utils/messaging/index.cjs.map +1 -0
  458. package/dist/utils/messaging/index.d.cts +562 -0
  459. package/dist/utils/messaging/index.d.ts +562 -0
  460. package/dist/utils/messaging/index.js +50 -0
  461. package/dist/utils/messaging/index.js.map +1 -0
  462. package/dist/utils/orchestration/index.cjs +876 -0
  463. package/dist/utils/orchestration/index.cjs.map +1 -0
  464. package/dist/utils/orchestration/index.d.cts +233 -0
  465. package/dist/utils/orchestration/index.d.ts +233 -0
  466. package/dist/utils/orchestration/index.js +19 -0
  467. package/dist/utils/orchestration/index.js.map +1 -0
  468. package/dist/utils/process/index.cjs +743 -0
  469. package/dist/utils/process/index.cjs.map +1 -0
  470. package/dist/utils/process/index.d.cts +411 -0
  471. package/dist/utils/process/index.d.ts +411 -0
  472. package/dist/utils/process/index.js +14 -0
  473. package/dist/utils/process/index.js.map +1 -0
  474. package/dist/utils/reactive-layout/index.cjs +1607 -0
  475. package/dist/utils/reactive-layout/index.cjs.map +1 -0
  476. package/dist/utils/reactive-layout/index.d.cts +492 -0
  477. package/dist/utils/reactive-layout/index.d.ts +492 -0
  478. package/dist/utils/reactive-layout/index.js +52 -0
  479. package/dist/utils/reactive-layout/index.js.map +1 -0
  480. package/dist/utils/reduction/index.cjs +203 -0
  481. package/dist/utils/reduction/index.cjs.map +1 -0
  482. package/dist/utils/reduction/index.d.cts +102 -0
  483. package/dist/utils/reduction/index.d.ts +102 -0
  484. package/dist/utils/reduction/index.js +14 -0
  485. package/dist/utils/reduction/index.js.map +1 -0
  486. package/dist/utils/resilience/index.cjs +1617 -0
  487. package/dist/utils/resilience/index.cjs.map +1 -0
  488. package/dist/utils/resilience/index.d.cts +9 -0
  489. package/dist/utils/resilience/index.d.ts +9 -0
  490. package/dist/utils/resilience/index.js +44 -0
  491. package/dist/utils/resilience/index.js.map +1 -0
  492. package/dist/utils/surface/index.cjs +1070 -0
  493. package/dist/utils/surface/index.cjs.map +1 -0
  494. package/dist/utils/surface/index.d.cts +240 -0
  495. package/dist/utils/surface/index.d.ts +240 -0
  496. package/dist/utils/surface/index.js +30 -0
  497. package/dist/utils/surface/index.js.map +1 -0
  498. package/dist/utils/topology-view/index.cjs +620 -0
  499. package/dist/utils/topology-view/index.cjs.map +1 -0
  500. package/dist/utils/topology-view/index.d.cts +68 -0
  501. package/dist/utils/topology-view/index.d.ts +68 -0
  502. package/dist/utils/topology-view/index.js +11 -0
  503. package/dist/utils/topology-view/index.js.map +1 -0
  504. package/package.json +293 -237
  505. package/dist/core/index.cjs +0 -21
  506. package/dist/core/index.cjs.map +0 -1
  507. package/dist/core/index.d.cts +0 -1
  508. package/dist/core/index.d.ts +0 -1
  509. package/dist/core/index.js +0 -3
  510. package/dist/core/index.js.map +0 -1
  511. package/dist/extra/browser.cjs +0 -21
  512. package/dist/extra/browser.cjs.map +0 -1
  513. package/dist/extra/browser.d.cts +0 -1
  514. package/dist/extra/browser.d.ts +0 -1
  515. package/dist/extra/browser.js +0 -3
  516. package/dist/extra/browser.js.map +0 -1
  517. package/dist/extra/index.cjs +0 -21
  518. package/dist/extra/index.cjs.map +0 -1
  519. package/dist/extra/index.d.cts +0 -1
  520. package/dist/extra/index.d.ts +0 -1
  521. package/dist/extra/index.js +0 -3
  522. package/dist/extra/index.js.map +0 -1
  523. package/dist/extra/node.cjs +0 -21
  524. package/dist/extra/node.cjs.map +0 -1
  525. package/dist/extra/node.d.cts +0 -1
  526. package/dist/extra/node.d.ts +0 -1
  527. package/dist/extra/node.js +0 -3
  528. package/dist/extra/node.js.map +0 -1
  529. package/dist/extra/operators.cjs +0 -21
  530. package/dist/extra/operators.cjs.map +0 -1
  531. package/dist/extra/operators.d.cts +0 -1
  532. package/dist/extra/operators.d.ts +0 -1
  533. package/dist/extra/operators.js +0 -3
  534. package/dist/extra/operators.js.map +0 -1
  535. package/dist/extra/reactive.cjs +0 -21
  536. package/dist/extra/reactive.cjs.map +0 -1
  537. package/dist/extra/reactive.d.cts +0 -1
  538. package/dist/extra/reactive.d.ts +0 -1
  539. package/dist/extra/reactive.js +0 -3
  540. package/dist/extra/reactive.js.map +0 -1
  541. package/dist/extra/render/index.cjs +0 -21
  542. package/dist/extra/render/index.cjs.map +0 -1
  543. package/dist/extra/render/index.d.cts +0 -1
  544. package/dist/extra/render/index.d.ts +0 -1
  545. package/dist/extra/render/index.js +0 -3
  546. package/dist/extra/render/index.js.map +0 -1
  547. package/dist/extra/sources.cjs +0 -21
  548. package/dist/extra/sources.cjs.map +0 -1
  549. package/dist/extra/sources.d.cts +0 -1
  550. package/dist/extra/sources.d.ts +0 -1
  551. package/dist/extra/sources.js +0 -3
  552. package/dist/extra/sources.js.map +0 -1
  553. package/dist/extra/storage-browser.cjs +0 -21
  554. package/dist/extra/storage-browser.cjs.map +0 -1
  555. package/dist/extra/storage-browser.d.cts +0 -1
  556. package/dist/extra/storage-browser.d.ts +0 -1
  557. package/dist/extra/storage-browser.js +0 -3
  558. package/dist/extra/storage-browser.js.map +0 -1
  559. package/dist/extra/storage-core.cjs +0 -21
  560. package/dist/extra/storage-core.cjs.map +0 -1
  561. package/dist/extra/storage-core.d.cts +0 -1
  562. package/dist/extra/storage-core.d.ts +0 -1
  563. package/dist/extra/storage-core.js +0 -3
  564. package/dist/extra/storage-core.js.map +0 -1
  565. package/dist/extra/storage-node.cjs +0 -21
  566. package/dist/extra/storage-node.cjs.map +0 -1
  567. package/dist/extra/storage-node.d.cts +0 -1
  568. package/dist/extra/storage-node.d.ts +0 -1
  569. package/dist/extra/storage-node.js +0 -3
  570. package/dist/extra/storage-node.js.map +0 -1
  571. package/dist/extra/storage-tiers-browser.cjs +0 -21
  572. package/dist/extra/storage-tiers-browser.cjs.map +0 -1
  573. package/dist/extra/storage-tiers-browser.d.cts +0 -1
  574. package/dist/extra/storage-tiers-browser.d.ts +0 -1
  575. package/dist/extra/storage-tiers-browser.js +0 -3
  576. package/dist/extra/storage-tiers-browser.js.map +0 -1
  577. package/dist/extra/storage-tiers-node.cjs +0 -21
  578. package/dist/extra/storage-tiers-node.cjs.map +0 -1
  579. package/dist/extra/storage-tiers-node.d.cts +0 -1
  580. package/dist/extra/storage-tiers-node.d.ts +0 -1
  581. package/dist/extra/storage-tiers-node.js +0 -3
  582. package/dist/extra/storage-tiers-node.js.map +0 -1
  583. package/dist/extra/storage-tiers.cjs +0 -21
  584. package/dist/extra/storage-tiers.cjs.map +0 -1
  585. package/dist/extra/storage-tiers.d.cts +0 -1
  586. package/dist/extra/storage-tiers.d.ts +0 -1
  587. package/dist/extra/storage-tiers.js +0 -3
  588. package/dist/extra/storage-tiers.js.map +0 -1
  589. package/dist/extra/storage-wal.cjs +0 -21
  590. package/dist/extra/storage-wal.cjs.map +0 -1
  591. package/dist/extra/storage-wal.d.cts +0 -1
  592. package/dist/extra/storage-wal.d.ts +0 -1
  593. package/dist/extra/storage-wal.js +0 -3
  594. package/dist/extra/storage-wal.js.map +0 -1
  595. package/dist/graph/index.cjs +0 -21
  596. package/dist/graph/index.cjs.map +0 -1
  597. package/dist/graph/index.d.cts +0 -1
  598. package/dist/graph/index.d.ts +0 -1
  599. package/dist/graph/index.js +0 -3
  600. package/dist/graph/index.js.map +0 -1
  601. package/dist/patterns/ai/browser.cjs +0 -21
  602. package/dist/patterns/ai/browser.cjs.map +0 -1
  603. package/dist/patterns/ai/browser.d.cts +0 -1
  604. package/dist/patterns/ai/browser.d.ts +0 -1
  605. package/dist/patterns/ai/browser.js +0 -3
  606. package/dist/patterns/ai/browser.js.map +0 -1
  607. package/dist/patterns/ai/index.cjs +0 -21
  608. package/dist/patterns/ai/index.cjs.map +0 -1
  609. package/dist/patterns/ai/index.d.cts +0 -1
  610. package/dist/patterns/ai/index.d.ts +0 -1
  611. package/dist/patterns/ai/index.js +0 -3
  612. package/dist/patterns/ai/index.js.map +0 -1
  613. package/dist/patterns/ai/node.cjs +0 -21
  614. package/dist/patterns/ai/node.cjs.map +0 -1
  615. package/dist/patterns/ai/node.d.cts +0 -1
  616. package/dist/patterns/ai/node.d.ts +0 -1
  617. package/dist/patterns/ai/node.js +0 -3
  618. package/dist/patterns/ai/node.js.map +0 -1
  619. package/dist/patterns/cqrs/index.cjs +0 -21
  620. package/dist/patterns/cqrs/index.cjs.map +0 -1
  621. package/dist/patterns/cqrs/index.d.cts +0 -1
  622. package/dist/patterns/cqrs/index.d.ts +0 -1
  623. package/dist/patterns/cqrs/index.js +0 -3
  624. package/dist/patterns/cqrs/index.js.map +0 -1
  625. package/dist/patterns/demo-shell/index.cjs +0 -21
  626. package/dist/patterns/demo-shell/index.cjs.map +0 -1
  627. package/dist/patterns/demo-shell/index.d.cts +0 -1
  628. package/dist/patterns/demo-shell/index.d.ts +0 -1
  629. package/dist/patterns/demo-shell/index.js +0 -3
  630. package/dist/patterns/demo-shell/index.js.map +0 -1
  631. package/dist/patterns/domain-templates/index.cjs +0 -21
  632. package/dist/patterns/domain-templates/index.cjs.map +0 -1
  633. package/dist/patterns/domain-templates/index.d.cts +0 -1
  634. package/dist/patterns/domain-templates/index.d.ts +0 -1
  635. package/dist/patterns/domain-templates/index.js +0 -3
  636. package/dist/patterns/domain-templates/index.js.map +0 -1
  637. package/dist/patterns/graphspec/index.cjs +0 -21
  638. package/dist/patterns/graphspec/index.cjs.map +0 -1
  639. package/dist/patterns/graphspec/index.d.cts +0 -1
  640. package/dist/patterns/graphspec/index.d.ts +0 -1
  641. package/dist/patterns/graphspec/index.js +0 -3
  642. package/dist/patterns/graphspec/index.js.map +0 -1
  643. package/dist/patterns/harness/index.cjs +0 -21
  644. package/dist/patterns/harness/index.cjs.map +0 -1
  645. package/dist/patterns/harness/index.d.cts +0 -1
  646. package/dist/patterns/harness/index.d.ts +0 -1
  647. package/dist/patterns/harness/index.js +0 -3
  648. package/dist/patterns/harness/index.js.map +0 -1
  649. package/dist/patterns/inspect/index.cjs +0 -21
  650. package/dist/patterns/inspect/index.cjs.map +0 -1
  651. package/dist/patterns/inspect/index.d.cts +0 -1
  652. package/dist/patterns/inspect/index.d.ts +0 -1
  653. package/dist/patterns/inspect/index.js +0 -3
  654. package/dist/patterns/inspect/index.js.map +0 -1
  655. package/dist/patterns/job-queue/index.cjs +0 -21
  656. package/dist/patterns/job-queue/index.cjs.map +0 -1
  657. package/dist/patterns/job-queue/index.d.cts +0 -1
  658. package/dist/patterns/job-queue/index.d.ts +0 -1
  659. package/dist/patterns/job-queue/index.js +0 -3
  660. package/dist/patterns/job-queue/index.js.map +0 -1
  661. package/dist/patterns/memory/index.cjs +0 -21
  662. package/dist/patterns/memory/index.cjs.map +0 -1
  663. package/dist/patterns/memory/index.d.cts +0 -1
  664. package/dist/patterns/memory/index.d.ts +0 -1
  665. package/dist/patterns/memory/index.js +0 -3
  666. package/dist/patterns/memory/index.js.map +0 -1
  667. package/dist/patterns/messaging/index.cjs +0 -21
  668. package/dist/patterns/messaging/index.cjs.map +0 -1
  669. package/dist/patterns/messaging/index.d.cts +0 -1
  670. package/dist/patterns/messaging/index.d.ts +0 -1
  671. package/dist/patterns/messaging/index.js +0 -3
  672. package/dist/patterns/messaging/index.js.map +0 -1
  673. package/dist/patterns/orchestration/index.cjs +0 -21
  674. package/dist/patterns/orchestration/index.cjs.map +0 -1
  675. package/dist/patterns/orchestration/index.d.cts +0 -1
  676. package/dist/patterns/orchestration/index.d.ts +0 -1
  677. package/dist/patterns/orchestration/index.js +0 -3
  678. package/dist/patterns/orchestration/index.js.map +0 -1
  679. package/dist/patterns/process/index.cjs +0 -21
  680. package/dist/patterns/process/index.cjs.map +0 -1
  681. package/dist/patterns/process/index.d.cts +0 -1
  682. package/dist/patterns/process/index.d.ts +0 -1
  683. package/dist/patterns/process/index.js +0 -3
  684. package/dist/patterns/process/index.js.map +0 -1
  685. package/dist/patterns/reactive-layout/index.cjs +0 -21
  686. package/dist/patterns/reactive-layout/index.cjs.map +0 -1
  687. package/dist/patterns/reactive-layout/index.d.cts +0 -1
  688. package/dist/patterns/reactive-layout/index.d.ts +0 -1
  689. package/dist/patterns/reactive-layout/index.js +0 -3
  690. package/dist/patterns/reactive-layout/index.js.map +0 -1
  691. package/dist/patterns/reduction/index.cjs +0 -21
  692. package/dist/patterns/reduction/index.cjs.map +0 -1
  693. package/dist/patterns/reduction/index.d.cts +0 -1
  694. package/dist/patterns/reduction/index.d.ts +0 -1
  695. package/dist/patterns/reduction/index.js +0 -3
  696. package/dist/patterns/reduction/index.js.map +0 -1
  697. package/dist/patterns/surface/index.cjs +0 -21
  698. package/dist/patterns/surface/index.cjs.map +0 -1
  699. package/dist/patterns/surface/index.d.cts +0 -1
  700. package/dist/patterns/surface/index.d.ts +0 -1
  701. package/dist/patterns/surface/index.js +0 -3
  702. package/dist/patterns/surface/index.js.map +0 -1
  703. package/dist/patterns/topology-view/index.cjs +0 -21
  704. package/dist/patterns/topology-view/index.cjs.map +0 -1
  705. package/dist/patterns/topology-view/index.d.cts +0 -1
  706. package/dist/patterns/topology-view/index.d.ts +0 -1
  707. package/dist/patterns/topology-view/index.js +0 -3
  708. package/dist/patterns/topology-view/index.js.map +0 -1
  709. package/dist/testing/index.cjs +0 -21
  710. package/dist/testing/index.cjs.map +0 -1
  711. package/dist/testing/index.d.cts +0 -1
  712. package/dist/testing/index.d.ts +0 -1
  713. package/dist/testing/index.js +0 -3
  714. package/dist/testing/index.js.map +0 -1
@@ -0,0 +1,1174 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/utils/graphspec/index.ts
21
+ var graphspec_exports = {};
22
+ __export(graphspec_exports, {
23
+ compileSpec: () => compileSpec,
24
+ decompileSpec: () => decompileSpec,
25
+ extractFnFactory: () => extractFnFactory,
26
+ extractSourceFactory: () => extractSourceFactory,
27
+ generateCatalogPrompt: () => generateCatalogPrompt,
28
+ isRichFnEntry: () => isRichFnEntry,
29
+ isRichSourceEntry: () => isRichSourceEntry,
30
+ llmCompose: () => llmCompose,
31
+ llmRefine: () => llmRefine,
32
+ specDiff: () => specDiff,
33
+ validateOwnership: () => validateOwnership,
34
+ validateSpec: () => validateSpec,
35
+ validateSpecAgainstCatalog: () => validateSpecAgainstCatalog
36
+ });
37
+ module.exports = __toCommonJS(graphspec_exports);
38
+ var import_core3 = require("@graphrefly/pure-ts/core");
39
+ var import_graph3 = require("@graphrefly/pure-ts/graph");
40
+
41
+ // src/utils/reduction/index.ts
42
+ var import_core2 = require("@graphrefly/pure-ts/core");
43
+ var import_extra2 = require("@graphrefly/pure-ts/extra");
44
+ var import_graph2 = require("@graphrefly/pure-ts/graph");
45
+ var import_extra3 = require("@graphrefly/pure-ts/extra");
46
+
47
+ // src/base/meta/domain-meta.ts
48
+ function domainMeta(domain, kind, extra) {
49
+ return {
50
+ [domain]: true,
51
+ [`${domain}_type`]: kind,
52
+ ...extra ?? {}
53
+ };
54
+ }
55
+
56
+ // src/base/mutation/index.ts
57
+ var import_core = require("@graphrefly/pure-ts/core");
58
+ var import_extra = require("@graphrefly/pure-ts/extra");
59
+ var import_graph = require("@graphrefly/pure-ts/graph");
60
+ function tryIncrementBounded(counter, cap, by = 1) {
61
+ const cur = counter.cache ?? 0;
62
+ if (by > cap - cur) return false;
63
+ counter.down([[import_core.DIRTY], [import_core.DATA, cur + by]]);
64
+ return true;
65
+ }
66
+ var DEFAULT_AUDIT_GUARD = (0, import_core.policy)((allow, deny) => {
67
+ allow("observe");
68
+ allow("signal");
69
+ deny("write");
70
+ });
71
+
72
+ // src/utils/reduction/index.ts
73
+ function baseMeta(kind, meta) {
74
+ return domainMeta("reduction", kind, meta);
75
+ }
76
+ function feedback(graph, condition, reentry, opts) {
77
+ const maxIter = opts?.maxIterations ?? 10;
78
+ const counterName = `__feedback_${condition}`;
79
+ const counter = (0, import_core2.node)([], {
80
+ ...{
81
+ meta: baseMeta("feedback_counter", {
82
+ maxIterations: maxIter,
83
+ feedbackFrom: condition,
84
+ feedbackTo: reentry
85
+ })
86
+ },
87
+ initial: 0
88
+ });
89
+ graph.add(counter, { name: counterName });
90
+ const condNode = graph.resolve(condition);
91
+ const reentryNode = graph.resolve(reentry);
92
+ const feedbackEffectName = `__feedback_effect_${condition}`;
93
+ const feedbackEffect = (0, import_core2.node)(
94
+ [],
95
+ (_data, _feedbackActions) => {
96
+ const unsub = condNode.subscribe((msgs) => {
97
+ for (const msg of msgs) {
98
+ const t = msg[0];
99
+ if (t === import_core2.DATA) {
100
+ const condValue = msg[1];
101
+ if (condValue == null) return;
102
+ (0, import_core2.batch)(() => {
103
+ if (tryIncrementBounded(counter, maxIter)) {
104
+ reentryNode.emit(condValue);
105
+ }
106
+ });
107
+ } else if (t === import_core2.COMPLETE || t === import_core2.ERROR) {
108
+ const terminal = t === import_core2.ERROR && msg.length > 1 ? [import_core2.ERROR, msg[1]] : [t];
109
+ counter.down([terminal]);
110
+ }
111
+ }
112
+ });
113
+ return () => unsub();
114
+ },
115
+ {
116
+ name: feedbackEffectName,
117
+ describeKind: "effect",
118
+ meta: {
119
+ ...baseMeta("feedback_effect", {
120
+ feedbackFrom: condition,
121
+ feedbackTo: reentry
122
+ }),
123
+ _internal: true
124
+ }
125
+ }
126
+ );
127
+ graph.add(feedbackEffect, { name: feedbackEffectName });
128
+ graph.addDisposer((0, import_extra3.keepalive)(feedbackEffect));
129
+ return graph;
130
+ }
131
+
132
+ // src/utils/graphspec/index.ts
133
+ function readFactory(node4) {
134
+ const f = node4.meta?.factory;
135
+ return typeof f === "string" ? f : void 0;
136
+ }
137
+ function readFactoryArgs(node4) {
138
+ const a = node4.meta?.factoryArgs;
139
+ return a != null && typeof a === "object" ? a : {};
140
+ }
141
+ function readStateInitial(node4) {
142
+ const args = readFactoryArgs(node4);
143
+ if ("initial" in args) return args.initial;
144
+ return node4.value;
145
+ }
146
+ function isRichFnEntry(entry) {
147
+ return typeof entry === "object" && entry !== null && "factory" in entry;
148
+ }
149
+ function isRichSourceEntry(entry) {
150
+ return typeof entry === "object" && entry !== null && "factory" in entry;
151
+ }
152
+ function extractFnFactory(entry) {
153
+ return isRichFnEntry(entry) ? entry.factory : entry;
154
+ }
155
+ function extractSourceFactory(entry) {
156
+ return isRichSourceEntry(entry) ? entry.factory : entry;
157
+ }
158
+ function generateCatalogPrompt(catalog) {
159
+ const sections = [];
160
+ if (catalog.fns) {
161
+ const groups = /* @__PURE__ */ new Map();
162
+ for (const [name, entry] of Object.entries(catalog.fns)) {
163
+ const tag = isRichFnEntry(entry) ? entry.tags?.[0] ?? "Other" : "Other";
164
+ if (!groups.has(tag)) groups.set(tag, []);
165
+ groups.get(tag).push(formatFnEntry(name, entry));
166
+ }
167
+ for (const [tag, lines] of groups) {
168
+ sections.push(`${tag}:
169
+ ${lines.join("\n")}`);
170
+ }
171
+ }
172
+ if (catalog.sources) {
173
+ const lines = [];
174
+ for (const [name, entry] of Object.entries(catalog.sources)) {
175
+ lines.push(formatSourceEntry(name, entry));
176
+ }
177
+ if (lines.length > 0) {
178
+ sections.push(`Sources:
179
+ ${lines.join("\n")}`);
180
+ }
181
+ }
182
+ return sections.join("\n\n");
183
+ }
184
+ function formatFnEntry(name, entry) {
185
+ if (!isRichFnEntry(entry)) return `- ${name}`;
186
+ let line = `- ${name}: ${entry.description}`;
187
+ if (entry.configSchema) {
188
+ const fields = Object.entries(entry.configSchema).map(([k, v]) => {
189
+ let desc = `${k}: ${v.type}`;
190
+ if (v.enum) desc += ` (${v.enum.join("|")})`;
191
+ if (v.required === false) desc += "?";
192
+ return desc;
193
+ });
194
+ line += `. Config: { ${fields.join(", ")} }`;
195
+ }
196
+ return line;
197
+ }
198
+ function formatSourceEntry(name, entry) {
199
+ if (!isRichSourceEntry(entry)) return `- ${name}`;
200
+ let line = `- ${name}: ${entry.description}`;
201
+ if (entry.configSchema) {
202
+ const fields = Object.entries(entry.configSchema).map(([k, v]) => {
203
+ let desc = `${k}: ${v.type}`;
204
+ if (v.required === false) desc += "?";
205
+ return desc;
206
+ });
207
+ line += `. Config: { ${fields.join(", ")} }`;
208
+ }
209
+ return line;
210
+ }
211
+ function validateSpecAgainstCatalog(spec, catalog) {
212
+ const errors = [];
213
+ const fnNames = new Set(Object.keys(catalog.fns ?? {}));
214
+ const sourceNames = new Set(Object.keys(catalog.sources ?? {}));
215
+ for (const [nodeName, nodeRaw] of Object.entries(spec.nodes)) {
216
+ if (nodeRaw.type === "template") continue;
217
+ const node4 = nodeRaw;
218
+ const factoryName = readFactory(node4);
219
+ if (factoryName == null) continue;
220
+ const isProducer = node4.type === "producer";
221
+ if (node4.type === "state" && factoryName === "state") continue;
222
+ if (isProducer) {
223
+ const inSources = sourceNames.has(factoryName);
224
+ const inFns = fnNames.has(factoryName);
225
+ if (!inSources && !inFns && (sourceNames.size > 0 || fnNames.size > 0)) {
226
+ const suggestion = findClosest(factoryName, sourceNames) ?? findClosest(factoryName, fnNames);
227
+ errors.push(
228
+ `Node "${nodeName}": source "${factoryName}" not found in catalog` + (suggestion ? `. Did you mean "${suggestion}"?` : "")
229
+ );
230
+ }
231
+ } else {
232
+ if (fnNames.size > 0 && !fnNames.has(factoryName)) {
233
+ if (sourceNames.has(factoryName)) {
234
+ errors.push(
235
+ `Node "${nodeName}": fn "${factoryName}" is a source, not a function. Use it as a producer source instead, or use a function from: ${[...fnNames].join(", ")}`
236
+ );
237
+ } else {
238
+ const suggestion = findClosest(factoryName, fnNames);
239
+ errors.push(
240
+ `Node "${nodeName}": fn "${factoryName}" not found in catalog` + (suggestion ? `. Did you mean "${suggestion}"?` : "")
241
+ );
242
+ }
243
+ }
244
+ }
245
+ const factoryArgs = readFactoryArgs(node4);
246
+ if (!isProducer && catalog.fns?.[factoryName]) {
247
+ const entry = catalog.fns[factoryName];
248
+ if (isRichFnEntry(entry) && entry.configSchema) {
249
+ for (const [field, schema] of Object.entries(entry.configSchema)) {
250
+ if (schema.required !== false && !(field in factoryArgs)) {
251
+ errors.push(`Node "${nodeName}": config missing required field "${field}"`);
252
+ }
253
+ if (field in factoryArgs && schema.enum) {
254
+ const val = factoryArgs[field];
255
+ if (!schema.enum.includes(val)) {
256
+ errors.push(
257
+ `Node "${nodeName}": config.${field} = ${JSON.stringify(val)}, expected one of: ${schema.enum.join(", ")}`
258
+ );
259
+ }
260
+ }
261
+ }
262
+ }
263
+ }
264
+ if (isProducer && catalog.sources?.[factoryName]) {
265
+ const entry = catalog.sources[factoryName];
266
+ if (isRichSourceEntry(entry) && entry.configSchema) {
267
+ for (const [field, schema] of Object.entries(entry.configSchema)) {
268
+ if (schema.required !== false && !(field in factoryArgs)) {
269
+ errors.push(`Node "${nodeName}": config missing required field "${field}"`);
270
+ }
271
+ if (field in factoryArgs && schema.enum) {
272
+ const val = factoryArgs[field];
273
+ if (!schema.enum.includes(val)) {
274
+ errors.push(
275
+ `Node "${nodeName}": config.${field} = ${JSON.stringify(val)}, expected one of: ${schema.enum.join(", ")}`
276
+ );
277
+ }
278
+ }
279
+ }
280
+ }
281
+ }
282
+ }
283
+ if (spec.templates) {
284
+ for (const [tName, template] of Object.entries(spec.templates)) {
285
+ for (const [nodeName, node4] of Object.entries(template.nodes)) {
286
+ const factoryName = readFactory(node4);
287
+ if (factoryName == null) continue;
288
+ if (node4.type === "state" && factoryName === "state") continue;
289
+ if (node4.type === "producer") continue;
290
+ if (fnNames.size > 0 && !fnNames.has(factoryName)) {
291
+ const suggestion = findClosest(factoryName, fnNames);
292
+ errors.push(
293
+ `Template "${tName}" node "${nodeName}": fn "${factoryName}" not found in catalog` + (suggestion ? `. Did you mean "${suggestion}"?` : "")
294
+ );
295
+ }
296
+ }
297
+ }
298
+ }
299
+ return { valid: errors.length === 0, errors, warnings: [] };
300
+ }
301
+ function findClosest(input, candidates) {
302
+ let best = null;
303
+ let bestDist = Infinity;
304
+ const lower = input.toLowerCase();
305
+ for (const c of candidates) {
306
+ const dist = levenshtein(lower, c.toLowerCase());
307
+ if (dist < bestDist && dist <= Math.max(3, Math.floor(input.length / 2))) {
308
+ bestDist = dist;
309
+ best = c;
310
+ }
311
+ }
312
+ return best;
313
+ }
314
+ function levenshtein(a, b) {
315
+ const m = a.length;
316
+ const n = b.length;
317
+ const dp = Array.from(
318
+ { length: m + 1 },
319
+ (_, i) => Array.from({ length: n + 1 }, (_2, j) => i === 0 ? j : j === 0 ? i : 0)
320
+ );
321
+ for (let i = 1; i <= m; i++) {
322
+ for (let j = 1; j <= n; j++) {
323
+ dp[i][j] = a[i - 1] === b[j - 1] ? dp[i - 1][j - 1] : 1 + Math.min(dp[i - 1][j], dp[i][j - 1], dp[i - 1][j - 1]);
324
+ }
325
+ }
326
+ return dp[m][n];
327
+ }
328
+ var VALID_NODE_TYPES = /* @__PURE__ */ new Set([
329
+ "state",
330
+ "producer",
331
+ "derived",
332
+ "effect",
333
+ "operator",
334
+ "template"
335
+ ]);
336
+ var INNER_NODE_TYPES = /* @__PURE__ */ new Set(["state", "producer", "derived", "effect", "operator"]);
337
+ function validateSpec(spec) {
338
+ const errors = [];
339
+ const warnings = [];
340
+ if (spec == null || typeof spec !== "object") {
341
+ return { valid: false, errors: ["GraphSpec must be a non-null object"], warnings };
342
+ }
343
+ const s = spec;
344
+ if (typeof s.name !== "string" || s.name.length === 0) {
345
+ errors.push("Missing or empty 'name' field");
346
+ }
347
+ if (s.nodes == null || typeof s.nodes !== "object" || Array.isArray(s.nodes)) {
348
+ errors.push("Missing or invalid 'nodes' field (must be an object)");
349
+ return { valid: false, errors, warnings };
350
+ }
351
+ const nodeNames = new Set(Object.keys(s.nodes));
352
+ const nodeTypes = /* @__PURE__ */ new Map();
353
+ const templateDefs = /* @__PURE__ */ new Map();
354
+ if (s.templates != null && typeof s.templates === "object" && !Array.isArray(s.templates)) {
355
+ for (const [tName, tRaw] of Object.entries(s.templates)) {
356
+ if (tRaw != null && typeof tRaw === "object") {
357
+ const t = tRaw;
358
+ templateDefs.set(tName, {
359
+ params: Array.isArray(t.params) ? t.params : []
360
+ });
361
+ }
362
+ }
363
+ }
364
+ if (s.templates != null) {
365
+ if (typeof s.templates !== "object" || Array.isArray(s.templates)) {
366
+ errors.push("'templates' must be an object");
367
+ } else {
368
+ for (const [tName, tRaw] of Object.entries(s.templates)) {
369
+ if (tRaw == null || typeof tRaw !== "object") {
370
+ errors.push(`Template "${tName}": must be an object`);
371
+ continue;
372
+ }
373
+ const t = tRaw;
374
+ if (!Array.isArray(t.params)) {
375
+ errors.push(`Template "${tName}": missing 'params' array`);
376
+ }
377
+ if (t.nodes == null || typeof t.nodes !== "object" || Array.isArray(t.nodes)) {
378
+ errors.push(`Template "${tName}": missing or invalid 'nodes' object`);
379
+ } else {
380
+ const paramSet = new Set(Array.isArray(t.params) ? t.params : []);
381
+ const innerNames = new Set(Object.keys(t.nodes));
382
+ for (const [nName, nRaw] of Object.entries(t.nodes)) {
383
+ if (nRaw == null || typeof nRaw !== "object") {
384
+ errors.push(`Template "${tName}" node "${nName}": must be an object`);
385
+ continue;
386
+ }
387
+ const n = nRaw;
388
+ if (typeof n.type !== "string" || !INNER_NODE_TYPES.has(n.type)) {
389
+ errors.push(`Template "${tName}" node "${nName}": invalid type`);
390
+ }
391
+ if (Array.isArray(n.deps)) {
392
+ for (const dep of n.deps) {
393
+ if (!innerNames.has(dep) && !paramSet.has(dep)) {
394
+ errors.push(
395
+ `Template "${tName}" node "${nName}": dep "${dep}" is not an inner node or param`
396
+ );
397
+ }
398
+ }
399
+ }
400
+ }
401
+ if (typeof t.output !== "string") {
402
+ errors.push(`Template "${tName}": missing 'output' string`);
403
+ } else if (!t.nodes[t.output]) {
404
+ errors.push(`Template "${tName}": output "${t.output}" is not a declared node`);
405
+ }
406
+ }
407
+ }
408
+ }
409
+ }
410
+ for (const [name, raw] of Object.entries(s.nodes)) {
411
+ if (raw == null || typeof raw !== "object") {
412
+ errors.push(`Node "${name}": must be an object`);
413
+ continue;
414
+ }
415
+ const n = raw;
416
+ if (typeof n.type !== "string" || !VALID_NODE_TYPES.has(n.type)) {
417
+ errors.push(
418
+ `Node "${name}": invalid type "${String(n.type)}" (expected: ${[...VALID_NODE_TYPES].join(", ")})`
419
+ );
420
+ continue;
421
+ }
422
+ nodeTypes.set(name, n.type);
423
+ if (n.type === "template") {
424
+ if (typeof n.template !== "string" || !templateDefs.has(n.template)) {
425
+ errors.push(`Node "${name}": template "${String(n.template)}" not found in templates`);
426
+ } else {
427
+ if (n.bind == null || typeof n.bind !== "object" || Array.isArray(n.bind)) {
428
+ errors.push(`Node "${name}": template ref requires 'bind' object`);
429
+ } else {
430
+ const tmpl = templateDefs.get(n.template);
431
+ const bind = n.bind;
432
+ for (const param of tmpl.params) {
433
+ if (!(param in bind)) {
434
+ errors.push(
435
+ `Node "${name}": template param "${param}" is not bound (template "${n.template}")`
436
+ );
437
+ }
438
+ }
439
+ for (const [, target] of Object.entries(bind)) {
440
+ if (typeof target === "string" && !nodeNames.has(target)) {
441
+ errors.push(
442
+ `Node "${name}": bind target "${target}" does not reference an existing node`
443
+ );
444
+ }
445
+ }
446
+ }
447
+ }
448
+ } else {
449
+ if (Array.isArray(n.deps)) {
450
+ for (const dep of n.deps) {
451
+ if (dep === name) {
452
+ errors.push(`Node "${name}": self-referencing dep`);
453
+ } else if (!nodeNames.has(dep)) {
454
+ errors.push(`Node "${name}": dep "${dep}" does not reference an existing node`);
455
+ }
456
+ }
457
+ }
458
+ if ((n.type === "derived" || n.type === "effect" || n.type === "operator") && !Array.isArray(n.deps)) {
459
+ errors.push(`Node "${name}": ${n.type} node should have a 'deps' array`);
460
+ }
461
+ }
462
+ }
463
+ if (s.feedback != null) {
464
+ if (!Array.isArray(s.feedback)) {
465
+ errors.push("'feedback' must be an array");
466
+ } else {
467
+ for (let i = 0; i < s.feedback.length; i++) {
468
+ const edge = s.feedback[i];
469
+ if (edge == null || typeof edge !== "object") {
470
+ errors.push(`Feedback [${i}]: must be an object`);
471
+ continue;
472
+ }
473
+ const e = edge;
474
+ if (typeof e.from !== "string" || !nodeNames.has(e.from)) {
475
+ errors.push(
476
+ `Feedback [${i}]: 'from' "${String(e.from)}" does not reference an existing node`
477
+ );
478
+ } else if (nodeTypes.get(e.from) === "effect") {
479
+ warnings.push(
480
+ `Feedback [${i}]: 'from' "${e.from}" is an effect node \u2014 effects emit no DATA, so the feedback edge will never fire. Did you mean a derived/state node upstream?`
481
+ );
482
+ }
483
+ if (typeof e.from === "string" && e.from === e.to) {
484
+ errors.push(`Feedback [${i}]: 'from' and 'to' must be different nodes`);
485
+ }
486
+ if (typeof e.to !== "string" || !nodeNames.has(e.to)) {
487
+ errors.push(
488
+ `Feedback [${i}]: 'to' "${String(e.to)}" does not reference an existing node`
489
+ );
490
+ } else if (typeof e.to === "string" && nodeTypes.get(e.to) !== "state") {
491
+ errors.push(
492
+ `Feedback [${i}]: 'to' node "${e.to}" must be a state node (got "${nodeTypes.get(e.to) ?? "unknown"}")`
493
+ );
494
+ }
495
+ }
496
+ }
497
+ }
498
+ return {
499
+ valid: errors.length === 0,
500
+ errors,
501
+ warnings
502
+ };
503
+ }
504
+ function readOwner(node4) {
505
+ const o = node4.meta?.owner;
506
+ return typeof o === "string" && o.length > 0 ? o : void 0;
507
+ }
508
+ var OVERRIDE_OWNER_TRAILER = /^\s*override-owner\s*:\s*(.+?)\s*$/im;
509
+ function parseOverrideOwner(commitMessage) {
510
+ if (commitMessage == null) return void 0;
511
+ const m = OVERRIDE_OWNER_TRAILER.exec(commitMessage);
512
+ const reason = m?.[1]?.trim();
513
+ return reason != null && reason.length > 0 ? reason : void 0;
514
+ }
515
+ function validateOwnership(spec, prDiff) {
516
+ const violations = [];
517
+ const overridden = [];
518
+ if (spec == null || typeof spec !== "object") {
519
+ return { ok: true, violations, overridden };
520
+ }
521
+ const s = spec;
522
+ const nodes = s.nodes;
523
+ if (nodes == null || typeof nodes !== "object" || Array.isArray(nodes)) {
524
+ return { ok: true, violations, overridden };
525
+ }
526
+ const edited = new Set(prDiff.editedFactories);
527
+ if (edited.size > 0) {
528
+ for (const [path, nRaw] of Object.entries(nodes)) {
529
+ if (nRaw == null || typeof nRaw !== "object") continue;
530
+ const n = nRaw;
531
+ const factory = readFactory(n);
532
+ if (factory == null || !edited.has(factory)) continue;
533
+ const owner = readOwner(n);
534
+ if (owner == null) continue;
535
+ if (owner === prDiff.author) continue;
536
+ violations.push({ node: path, owner, author: prDiff.author, factory });
537
+ }
538
+ }
539
+ const overrideReason = parseOverrideOwner(prDiff.commitMessage);
540
+ if (violations.length > 0 && overrideReason != null) {
541
+ overridden.push(...violations);
542
+ return { ok: true, violations: [], overridden, overrideReason };
543
+ }
544
+ return {
545
+ ok: violations.length === 0,
546
+ violations,
547
+ overridden,
548
+ ...overrideReason != null ? { overrideReason } : {}
549
+ };
550
+ }
551
+ function compileSpec(spec, opts) {
552
+ const validation = validateSpec(spec);
553
+ if (!validation.valid) {
554
+ throw new Error(`compileSpec: invalid GraphSpec:
555
+ ${validation.errors.join("\n")}`);
556
+ }
557
+ const specFactory = spec.factory;
558
+ const specFactoryArgs = spec.factoryArgs;
559
+ if (typeof specFactory === "string") {
560
+ const graphFactory = opts?.catalog?.graphFactories?.[specFactory];
561
+ if (graphFactory) return graphFactory(specFactoryArgs);
562
+ }
563
+ const catalog = opts?.catalog ?? {};
564
+ const onMissing = opts?.onMissing ?? "placeholder";
565
+ const g = new import_graph3.Graph(spec.name);
566
+ const templates = spec.templates ?? {};
567
+ const catalogValidation = validateSpecAgainstCatalog(spec, catalog);
568
+ if (!catalogValidation.valid) {
569
+ throw new Error(
570
+ `compileSpec: catalog validation errors:
571
+ ${catalogValidation.errors.join("\n")}`
572
+ );
573
+ }
574
+ const missingEntries = [];
575
+ const recordMissing = (nodePath, kind, name) => {
576
+ missingEntries.push({ path: nodePath, kind, name });
577
+ };
578
+ const resolveFn = (fnName) => {
579
+ const entry = catalog.fns?.[fnName];
580
+ return entry ? extractFnFactory(entry) : void 0;
581
+ };
582
+ const resolveSource = (sourceName) => {
583
+ const entry = catalog.sources?.[sourceName];
584
+ return entry ? extractSourceFactory(entry) : void 0;
585
+ };
586
+ const stripFactoryMeta = (meta) => {
587
+ if (!meta) return void 0;
588
+ const out = {};
589
+ for (const [k, v] of Object.entries(meta)) {
590
+ if (k === "factory" || k === "factoryArgs") continue;
591
+ out[k] = v;
592
+ }
593
+ return Object.keys(out).length > 0 ? out : void 0;
594
+ };
595
+ const created = /* @__PURE__ */ new Map();
596
+ const deferred = [];
597
+ for (const [name, raw] of Object.entries(spec.nodes)) {
598
+ if (raw.type === "template") continue;
599
+ const n = raw;
600
+ const factoryName = readFactory(n);
601
+ const factoryArgs = readFactoryArgs(n);
602
+ if (n.type === "state") {
603
+ const initial = readStateInitial(n);
604
+ const nd = (0, import_core3.node)([], {
605
+ name,
606
+ initial,
607
+ meta: stripFactoryMeta(n.meta)
608
+ });
609
+ g.add(nd, { name });
610
+ created.set(name, nd);
611
+ } else if (n.type === "producer") {
612
+ const sourceFactory = factoryName ? resolveSource(factoryName) : void 0;
613
+ const fnFactory = factoryName ? resolveFn(factoryName) : void 0;
614
+ if (sourceFactory) {
615
+ const nd = sourceFactory(factoryArgs);
616
+ g.add(nd, { name });
617
+ created.set(name, nd);
618
+ } else if (fnFactory) {
619
+ const nd = fnFactory([], factoryArgs);
620
+ g.add(nd, { name });
621
+ created.set(name, nd);
622
+ } else {
623
+ if (factoryName) recordMissing(name, "source", factoryName);
624
+ const nd = (0, import_core3.node)([], () => {
625
+ }, {
626
+ name,
627
+ describeKind: "producer",
628
+ meta: { ...stripFactoryMeta(n.meta), _specSource: factoryName }
629
+ });
630
+ g.add(nd, { name });
631
+ created.set(name, nd);
632
+ }
633
+ } else {
634
+ deferred.push([name, n]);
635
+ }
636
+ }
637
+ let progressed = true;
638
+ const pending = new Map(deferred);
639
+ while (pending.size > 0 && progressed) {
640
+ progressed = false;
641
+ for (const [name, n] of [...pending.entries()]) {
642
+ const deps = n.deps ?? [];
643
+ if (!deps.every((dep) => created.has(dep))) continue;
644
+ const resolvedDeps = deps.map((dep) => created.get(dep));
645
+ const factoryName = readFactory(n);
646
+ const factoryArgs = readFactoryArgs(n);
647
+ const fnFactory = factoryName ? resolveFn(factoryName) : void 0;
648
+ let nd;
649
+ if (fnFactory) {
650
+ nd = fnFactory(resolvedDeps, factoryArgs);
651
+ } else if (n.type === "effect") {
652
+ if (factoryName) recordMissing(name, "fn", factoryName);
653
+ nd = (0, import_core3.node)(resolvedDeps, () => {
654
+ }, { describeKind: "effect" });
655
+ } else {
656
+ if (factoryName) recordMissing(name, "fn", factoryName);
657
+ nd = (0, import_core3.node)(
658
+ resolvedDeps,
659
+ (batchData, actions, ctx) => {
660
+ const data = batchData.map(
661
+ (batch3, i) => batch3 != null && batch3.length > 0 ? batch3.at(-1) : ctx.prevData[i]
662
+ );
663
+ actions.emit(data[0]);
664
+ },
665
+ { describeKind: "derived" }
666
+ );
667
+ }
668
+ g.add(nd, { name });
669
+ created.set(name, nd);
670
+ pending.delete(name);
671
+ progressed = true;
672
+ }
673
+ }
674
+ if (pending.size > 0) {
675
+ const unresolved = [...pending.keys()].sort().join(", ");
676
+ throw new Error(`compileSpec: unresolvable deps for nodes: ${unresolved}`);
677
+ }
678
+ for (const [name, raw] of Object.entries(spec.nodes)) {
679
+ if (raw.type !== "template") continue;
680
+ const ref = raw;
681
+ const tmpl = templates[ref.template];
682
+ const sub = new import_graph3.Graph(name);
683
+ const subCreated = /* @__PURE__ */ new Map();
684
+ const subDeferred = [];
685
+ for (const [nName, nSpec] of Object.entries(tmpl.nodes)) {
686
+ const resolvedDeps = (nSpec.deps ?? []).map((dep) => {
687
+ if (dep.startsWith("$") && ref.bind[dep]) {
688
+ return ref.bind[dep];
689
+ }
690
+ return dep;
691
+ });
692
+ const specWithResolvedDeps = { ...nSpec, deps: resolvedDeps };
693
+ const factoryName = readFactory(nSpec);
694
+ const factoryArgs = readFactoryArgs(nSpec);
695
+ if (nSpec.type === "state") {
696
+ const initial = readStateInitial(nSpec);
697
+ const nd = (0, import_core3.node)([], {
698
+ name: nName,
699
+ initial,
700
+ meta: stripFactoryMeta(nSpec.meta)
701
+ });
702
+ sub.add(nd, { name: nName });
703
+ subCreated.set(nName, nd);
704
+ } else if (nSpec.type === "producer") {
705
+ const sourceFactory = factoryName ? resolveSource(factoryName) : void 0;
706
+ const fnFactory = factoryName ? resolveFn(factoryName) : void 0;
707
+ if (sourceFactory) {
708
+ const nd = sourceFactory(factoryArgs);
709
+ sub.add(nd, { name: nName });
710
+ subCreated.set(nName, nd);
711
+ } else if (fnFactory) {
712
+ const nd = fnFactory([], factoryArgs);
713
+ sub.add(nd, { name: nName });
714
+ subCreated.set(nName, nd);
715
+ } else {
716
+ if (factoryName) recordMissing(`${name}.${nName}`, "source", factoryName);
717
+ const nd = (0, import_core3.node)([], () => {
718
+ }, {
719
+ name: nName,
720
+ describeKind: "producer",
721
+ meta: { ...stripFactoryMeta(nSpec.meta), _specSource: factoryName }
722
+ });
723
+ sub.add(nd, { name: nName });
724
+ subCreated.set(nName, nd);
725
+ }
726
+ } else {
727
+ subDeferred.push([nName, specWithResolvedDeps]);
728
+ }
729
+ }
730
+ let subProgressed = true;
731
+ const subPending = new Map(subDeferred);
732
+ while (subPending.size > 0 && subProgressed) {
733
+ subProgressed = false;
734
+ for (const [nName, nSpec] of [...subPending.entries()]) {
735
+ const deps = nSpec.deps ?? [];
736
+ const allReady = deps.every((dep) => subCreated.has(dep) || created.has(dep));
737
+ if (!allReady) continue;
738
+ const resolvedDeps = deps.map((dep) => subCreated.get(dep) ?? created.get(dep));
739
+ const factoryName = readFactory(nSpec);
740
+ const factoryArgs = readFactoryArgs(nSpec);
741
+ const fnFactory = factoryName ? resolveFn(factoryName) : void 0;
742
+ let nd;
743
+ if (fnFactory) {
744
+ nd = fnFactory(resolvedDeps, factoryArgs);
745
+ } else if (nSpec.type === "effect") {
746
+ if (factoryName) recordMissing(`${name}.${nName}`, "fn", factoryName);
747
+ nd = (0, import_core3.node)(resolvedDeps, () => {
748
+ }, { describeKind: "effect" });
749
+ } else {
750
+ if (factoryName) recordMissing(`${name}.${nName}`, "fn", factoryName);
751
+ nd = (0, import_core3.node)(
752
+ resolvedDeps,
753
+ (batchData, actions, ctx) => {
754
+ const data = batchData.map(
755
+ (batch3, i) => batch3 != null && batch3.length > 0 ? batch3.at(-1) : ctx.prevData[i]
756
+ );
757
+ actions.emit(data[0]);
758
+ },
759
+ { describeKind: "derived" }
760
+ );
761
+ }
762
+ sub.add(nd, { name: nName });
763
+ subCreated.set(nName, nd);
764
+ subPending.delete(nName);
765
+ subProgressed = true;
766
+ }
767
+ }
768
+ if (subPending.size > 0) {
769
+ const unresolved = [...subPending.keys()].sort().join(", ");
770
+ throw new Error(
771
+ `compileSpec: template "${ref.template}" has unresolvable deps: ${unresolved}`
772
+ );
773
+ }
774
+ g.mount(name, sub);
775
+ const outputPath = `${name}::${tmpl.output}`;
776
+ created.set(name, g.resolve(outputPath));
777
+ try {
778
+ const outputNode = g.resolve(outputPath);
779
+ outputNode.meta._templateName?.emit(ref.template);
780
+ outputNode.meta._templateBind?.emit(ref.bind);
781
+ } catch {
782
+ }
783
+ }
784
+ for (const fb of spec.feedback ?? []) {
785
+ feedback(g, fb.from, fb.to, {
786
+ maxIterations: fb.maxIterations
787
+ });
788
+ }
789
+ if (missingEntries.length > 0) {
790
+ if (onMissing === "error") {
791
+ const lines = missingEntries.map((e) => ` - ${e.path}: missing ${e.kind} "${e.name}"`);
792
+ throw new Error(
793
+ `compileSpec: ${missingEntries.length} catalog entr${missingEntries.length === 1 ? "y" : "ies"} missing \u2014 pass them via opts.catalog or set opts.onMissing to "warn"/"placeholder":
794
+ ${lines.join("\n")}`
795
+ );
796
+ }
797
+ if (onMissing === "warn") {
798
+ const warn = opts?.onWarn ?? ((m) => console.warn(m));
799
+ for (const e of missingEntries) {
800
+ warn(
801
+ `compileSpec: ${e.path} references missing ${e.kind} "${e.name}" \u2014 substituted placeholder`
802
+ );
803
+ }
804
+ }
805
+ }
806
+ return g;
807
+ }
808
+ var INTERNAL_META_KEYS = /* @__PURE__ */ new Set([
809
+ "reduction",
810
+ "reduction_type",
811
+ "_specFn",
812
+ "_specSource",
813
+ "_templateName",
814
+ "_templateBind",
815
+ "feedbackFrom",
816
+ "feedbackTo",
817
+ "_internal"
818
+ ]);
819
+ function decompileSpec(graph) {
820
+ const desc = graph.describe({ detail: "spec" });
821
+ const metaSegment = `::${import_graph3.GRAPH_META_SEGMENT}::`;
822
+ const feedbackCounterPattern = /^__feedback_(?!effect_)(.+)$/;
823
+ const feedbackEdges = [];
824
+ const compoundFactoryPrefixes = /* @__PURE__ */ new Set();
825
+ for (const [path, nodeDesc] of Object.entries(desc.nodes)) {
826
+ const meta = nodeDesc.meta;
827
+ if (meta?.factory != null && !path.includes("::")) {
828
+ if (meta.factory === "proxy") continue;
829
+ compoundFactoryPrefixes.add(path);
830
+ }
831
+ }
832
+ const allPaths = new Set(Object.keys(desc.nodes));
833
+ for (const path of allPaths) {
834
+ const sepIdx = path.indexOf("::");
835
+ if (sepIdx <= 0) continue;
836
+ const parent = path.slice(0, sepIdx);
837
+ if (path.includes(metaSegment)) continue;
838
+ if (path.startsWith("__feedback_effect_") || path.startsWith("__bridge_")) continue;
839
+ if (compoundFactoryPrefixes.has(parent)) continue;
840
+ if (!allPaths.has(parent)) continue;
841
+ throw new Error(
842
+ `decompileSpec: untagged compound factory at "${parent}" (child: "${path}"). Compound factories that ship \`parent::child\` topology MUST set \`meta.factory\` on the parent so \`compileSpec\` can reconstruct the internals via the catalog. Either tag the parent (\`{ meta: factoryTag('myFactory', args) }\`) OR rename the child to use \`/\` instead of \`::\` if it's not a compound-factory internal (see COMPOSITION-GUIDE \xA738).`
843
+ );
844
+ }
845
+ const nodes = {};
846
+ for (const [path, nodeDesc] of Object.entries(desc.nodes)) {
847
+ if (path.includes(metaSegment)) continue;
848
+ const sepIdx = path.indexOf("::");
849
+ if (sepIdx > 0 && compoundFactoryPrefixes.has(path.slice(0, sepIdx))) continue;
850
+ const match = feedbackCounterPattern.exec(path);
851
+ if (match) {
852
+ const meta2 = nodeDesc.meta;
853
+ if (meta2?.feedbackFrom && meta2?.feedbackTo) {
854
+ feedbackEdges.push({
855
+ from: meta2.feedbackFrom,
856
+ to: meta2.feedbackTo,
857
+ ...meta2.maxIterations ? { maxIterations: meta2.maxIterations } : {}
858
+ });
859
+ }
860
+ continue;
861
+ }
862
+ if (nodeDesc.meta?._internal) continue;
863
+ if (path.startsWith("__feedback_effect_")) continue;
864
+ if (path.startsWith("__bridge_")) continue;
865
+ const meta = nodeDesc.meta;
866
+ let cleanedMeta = meta;
867
+ if (meta && Object.keys(meta).length > 0) {
868
+ const out = {};
869
+ for (const [k, v] of Object.entries(meta)) {
870
+ if (INTERNAL_META_KEYS.has(k)) continue;
871
+ out[k] = v;
872
+ }
873
+ if (out.factory === "withStatus") {
874
+ delete out.status;
875
+ delete out.error;
876
+ } else if (out.factory === "withBreaker") {
877
+ delete out.breakerState;
878
+ } else if (out.factory === "verifiable") {
879
+ delete out.sourceVersion;
880
+ }
881
+ cleanedMeta = Object.keys(out).length > 0 ? out : void 0;
882
+ }
883
+ const cleaned = { ...nodeDesc };
884
+ if (cleanedMeta === void 0) delete cleaned.meta;
885
+ else cleaned.meta = cleanedMeta;
886
+ nodes[path] = cleaned;
887
+ }
888
+ const result = { ...desc, nodes };
889
+ delete result.expand;
890
+ if (feedbackEdges.length > 0) result.feedback = feedbackEdges;
891
+ return result;
892
+ }
893
+ function specDiff(specA, specB) {
894
+ const entries = [];
895
+ if (specA.name !== specB.name) {
896
+ entries.push({
897
+ type: "changed",
898
+ path: "name",
899
+ detail: `"${specA.name}" \u2192 "${specB.name}"`
900
+ });
901
+ }
902
+ const nodesA = new Set(Object.keys(specA.nodes));
903
+ const nodesB = new Set(Object.keys(specB.nodes));
904
+ for (const name of nodesB) {
905
+ if (!nodesA.has(name)) {
906
+ const n = specB.nodes[name];
907
+ entries.push({
908
+ type: "added",
909
+ path: `nodes.${name}`,
910
+ detail: `type: ${n.type}`
911
+ });
912
+ }
913
+ }
914
+ for (const name of nodesA) {
915
+ if (!nodesB.has(name)) {
916
+ entries.push({ type: "removed", path: `nodes.${name}` });
917
+ }
918
+ }
919
+ for (const name of nodesA) {
920
+ if (!nodesB.has(name)) continue;
921
+ const a = specA.nodes[name];
922
+ const b = specB.nodes[name];
923
+ if (JSON.stringify(a) !== JSON.stringify(b)) {
924
+ const details = [];
925
+ if (a.type !== b.type) details.push(`type: ${a.type} \u2192 ${b.type}`);
926
+ if (JSON.stringify(a.deps) !== JSON.stringify(b.deps)) {
927
+ details.push("deps changed");
928
+ }
929
+ const aFactory = a.type === "template" ? void 0 : readFactory(a);
930
+ const bFactory = b.type === "template" ? void 0 : readFactory(b);
931
+ if (aFactory !== bFactory) {
932
+ details.push(`fn: ${aFactory} \u2192 ${bFactory}`);
933
+ }
934
+ const aArgs = a.type === "template" ? void 0 : readFactoryArgs(a);
935
+ const bArgs = b.type === "template" ? void 0 : readFactoryArgs(b);
936
+ if (JSON.stringify(aArgs) !== JSON.stringify(bArgs)) {
937
+ details.push("config changed");
938
+ }
939
+ entries.push({
940
+ type: "changed",
941
+ path: `nodes.${name}`,
942
+ detail: details.join("; ") || "modified"
943
+ });
944
+ }
945
+ }
946
+ const tmplA = specA.templates ?? {};
947
+ const tmplB = specB.templates ?? {};
948
+ const tmplNamesA = new Set(Object.keys(tmplA));
949
+ const tmplNamesB = new Set(Object.keys(tmplB));
950
+ for (const name of tmplNamesB) {
951
+ if (!tmplNamesA.has(name)) {
952
+ entries.push({ type: "added", path: `templates.${name}` });
953
+ }
954
+ }
955
+ for (const name of tmplNamesA) {
956
+ if (!tmplNamesB.has(name)) {
957
+ entries.push({ type: "removed", path: `templates.${name}` });
958
+ }
959
+ }
960
+ for (const name of tmplNamesA) {
961
+ if (!tmplNamesB.has(name)) continue;
962
+ if (JSON.stringify(tmplA[name]) !== JSON.stringify(tmplB[name])) {
963
+ entries.push({
964
+ type: "changed",
965
+ path: `templates.${name}`,
966
+ detail: "template definition changed"
967
+ });
968
+ }
969
+ }
970
+ const fbA = specA.feedback ?? [];
971
+ const fbB = specB.feedback ?? [];
972
+ const fbKeyA = new Set(fbA.map((e) => `${e.from}->${e.to}`));
973
+ const fbKeyB = new Set(fbB.map((e) => `${e.from}->${e.to}`));
974
+ for (const fb of fbB) {
975
+ const key = `${fb.from}->${fb.to}`;
976
+ if (!fbKeyA.has(key)) {
977
+ entries.push({
978
+ type: "added",
979
+ path: `feedback.${key}`,
980
+ detail: `maxIterations: ${fb.maxIterations ?? 10}`
981
+ });
982
+ }
983
+ }
984
+ for (const fb of fbA) {
985
+ const key = `${fb.from}->${fb.to}`;
986
+ if (!fbKeyB.has(key)) {
987
+ entries.push({ type: "removed", path: `feedback.${key}` });
988
+ }
989
+ }
990
+ for (const fb of fbA) {
991
+ const key = `${fb.from}->${fb.to}`;
992
+ const counterpart = fbB.find((b) => b.from === fb.from && b.to === fb.to);
993
+ if (counterpart && JSON.stringify(fb) !== JSON.stringify(counterpart)) {
994
+ entries.push({
995
+ type: "changed",
996
+ path: `feedback.${key}`,
997
+ detail: `maxIterations: ${fb.maxIterations ?? 10} \u2192 ${counterpart.maxIterations ?? 10}`
998
+ });
999
+ }
1000
+ }
1001
+ const added = entries.filter((e) => e.type === "added").length;
1002
+ const removed = entries.filter((e) => e.type === "removed").length;
1003
+ const changed = entries.filter((e) => e.type === "changed").length;
1004
+ const parts = [];
1005
+ if (added) parts.push(`${added} added`);
1006
+ if (removed) parts.push(`${removed} removed`);
1007
+ if (changed) parts.push(`${changed} changed`);
1008
+ const summary = parts.length > 0 ? parts.join(", ") : "no changes";
1009
+ return { entries, summary };
1010
+ }
1011
+ var LLM_COMPOSE_SYSTEM_PROMPT = `You are a graph architect for GraphReFly, a reactive graph protocol.
1012
+
1013
+ Given a natural-language description, produce a JSON GraphSpec with this structure:
1014
+
1015
+ {
1016
+ "name": "<graph_name>",
1017
+ "nodes": {
1018
+ "<node_name>": {
1019
+ "type": "state" | "derived" | "producer" | "effect",
1020
+ "deps": ["<dep_node_name>", ...],
1021
+ "value": <initial_value>,
1022
+ "meta": {
1023
+ "factory": "<catalog_factory_name>",
1024
+ "factoryArgs": { ... },
1025
+ "description": "<purpose>"
1026
+ }
1027
+ },
1028
+ "<template_instance>": {
1029
+ "type": "template",
1030
+ "template": "<template_name>",
1031
+ "bind": { "$param": "node_name" }
1032
+ }
1033
+ },
1034
+ "templates": {
1035
+ "<template_name>": {
1036
+ "params": ["$param1", "$param2"],
1037
+ "nodes": { ... },
1038
+ "output": "<output_node>"
1039
+ }
1040
+ },
1041
+ "feedback": [
1042
+ { "from": "<condition_node>", "to": "<state_node>", "maxIterations": 10 }
1043
+ ]
1044
+ }
1045
+
1046
+ Rules:
1047
+ - "state" nodes hold user/LLM-writable values (knobs). Stamp the initial value
1048
+ in "meta.factoryArgs.initial" (or as the top-level "value" field \u2014 both work).
1049
+ - "derived" nodes compute from deps using a catalog function named in
1050
+ "meta.factory"; pass any config via "meta.factoryArgs".
1051
+ - "effect" nodes produce side effects from deps; same meta.factory shape as derived.
1052
+ - "producer" nodes generate values from a catalog source named in "meta.factory";
1053
+ pass any config via "meta.factoryArgs".
1054
+ - Use "templates" when the same subgraph pattern repeats (e.g., per-source resilience).
1055
+ - Use "feedback" for bounded cycles where a derived value writes back to a state node.
1056
+ - meta.description is required for every node.
1057
+ - Return ONLY valid JSON, no markdown fences or commentary.`;
1058
+ function stripFences(text) {
1059
+ const match = text.match(/^```(?:json)?\s*([\s\S]*?)\s*```[\s\S]*$/);
1060
+ return match ? match[1] : text;
1061
+ }
1062
+ async function llmCompose(problem, adapter, opts) {
1063
+ let systemPrompt = LLM_COMPOSE_SYSTEM_PROMPT;
1064
+ const catalogPrompt = opts?.catalogDescription ?? (opts?.catalog ? generateCatalogPrompt(opts.catalog) : void 0);
1065
+ if (catalogPrompt) {
1066
+ systemPrompt += `
1067
+
1068
+ Available catalog (use ONLY these names):
1069
+ ${catalogPrompt}`;
1070
+ }
1071
+ if (opts?.systemPromptExtra) {
1072
+ systemPrompt += `
1073
+
1074
+ ${opts.systemPromptExtra}`;
1075
+ }
1076
+ const messages = [
1077
+ { role: "system", content: systemPrompt },
1078
+ { role: "user", content: problem }
1079
+ ];
1080
+ const rawResult = adapter.invoke(messages, {
1081
+ model: opts?.model,
1082
+ temperature: opts?.temperature ?? 0,
1083
+ maxTokens: opts?.maxTokens
1084
+ });
1085
+ const response = await rawResult;
1086
+ let content = response.content.trim();
1087
+ if (content.startsWith("```")) {
1088
+ content = stripFences(content);
1089
+ }
1090
+ let parsed;
1091
+ try {
1092
+ parsed = JSON.parse(content);
1093
+ } catch {
1094
+ throw new Error(`llmCompose: LLM response is not valid JSON: ${content.slice(0, 200)}`);
1095
+ }
1096
+ const validation = validateSpec(parsed);
1097
+ if (!validation.valid) {
1098
+ throw new Error(`llmCompose: invalid GraphSpec:
1099
+ ${validation.errors.join("\n")}`);
1100
+ }
1101
+ let spec = parsed;
1102
+ if (opts?.catalog) {
1103
+ const maxRefine = opts.maxAutoRefine ?? 0;
1104
+ for (let attempt = 0; attempt <= maxRefine; attempt++) {
1105
+ const catalogValidation = validateSpecAgainstCatalog(spec, opts.catalog);
1106
+ if (catalogValidation.valid) break;
1107
+ if (attempt === maxRefine) {
1108
+ throw new Error(
1109
+ `llmCompose: catalog validation failed after ${maxRefine} refine attempts:
1110
+ ${catalogValidation.errors.join("\n")}`
1111
+ );
1112
+ }
1113
+ spec = await llmRefine(
1114
+ spec,
1115
+ `Fix these catalog errors:
1116
+ ${catalogValidation.errors.join("\n")}
1117
+
1118
+ Use ONLY functions and sources from the catalog.`,
1119
+ adapter,
1120
+ { ...opts, catalogDescription: catalogPrompt }
1121
+ );
1122
+ }
1123
+ }
1124
+ return spec;
1125
+ }
1126
+ async function llmRefine(currentSpec, feedback2, adapter, opts) {
1127
+ let systemPrompt = LLM_COMPOSE_SYSTEM_PROMPT;
1128
+ if (opts?.catalogDescription) {
1129
+ systemPrompt += `
1130
+
1131
+ Available catalog:
1132
+ ${opts.catalogDescription}`;
1133
+ }
1134
+ if (opts?.systemPromptExtra) {
1135
+ systemPrompt += `
1136
+
1137
+ ${opts.systemPromptExtra}`;
1138
+ }
1139
+ const messages = [
1140
+ { role: "system", content: systemPrompt },
1141
+ {
1142
+ role: "user",
1143
+ content: `Current GraphSpec:
1144
+ ${JSON.stringify(currentSpec, null, 2)}
1145
+
1146
+ Modification request: ${feedback2}
1147
+
1148
+ Return the complete modified GraphSpec as JSON.`
1149
+ }
1150
+ ];
1151
+ const rawResult = adapter.invoke(messages, {
1152
+ model: opts?.model,
1153
+ temperature: opts?.temperature ?? 0,
1154
+ maxTokens: opts?.maxTokens
1155
+ });
1156
+ const response = await rawResult;
1157
+ let content = response.content.trim();
1158
+ if (content.startsWith("```")) {
1159
+ content = stripFences(content);
1160
+ }
1161
+ let parsed;
1162
+ try {
1163
+ parsed = JSON.parse(content);
1164
+ } catch {
1165
+ throw new Error(`llmRefine: LLM response is not valid JSON: ${content.slice(0, 200)}`);
1166
+ }
1167
+ const validation = validateSpec(parsed);
1168
+ if (!validation.valid) {
1169
+ throw new Error(`llmRefine: invalid GraphSpec:
1170
+ ${validation.errors.join("\n")}`);
1171
+ }
1172
+ return parsed;
1173
+ }
1174
+ //# sourceMappingURL=index.cjs.map