@graphrefly/graphrefly 0.45.0 → 0.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (714) hide show
  1. package/README.md +1 -2
  2. package/dist/_internal-B23BagFd.d.cts +33 -0
  3. package/dist/_internal-B23BagFd.d.ts +33 -0
  4. package/dist/adaptive-rate-limiter-Dch_xYIi.d.cts +111 -0
  5. package/dist/adaptive-rate-limiter-Dch_xYIi.d.ts +111 -0
  6. package/dist/agents-C0Ji9ldU.d.cts +629 -0
  7. package/dist/agents-C9zexT7I.d.ts +629 -0
  8. package/dist/audit-BAXb3VOg.d.ts +246 -0
  9. package/dist/audit-C_bPfkqS.d.cts +246 -0
  10. package/dist/backoff-7KIK3WQW.js +24 -0
  11. package/dist/backoff-7KIK3WQW.js.map +1 -0
  12. package/dist/backoff-Bnb9OoPh.d.cts +6 -0
  13. package/dist/backoff-Bnb9OoPh.d.ts +6 -0
  14. package/dist/base/composition/index.cjs +865 -0
  15. package/dist/base/composition/index.cjs.map +1 -0
  16. package/dist/base/composition/index.d.cts +468 -0
  17. package/dist/base/composition/index.d.ts +468 -0
  18. package/dist/base/composition/index.js +40 -0
  19. package/dist/base/composition/index.js.map +1 -0
  20. package/dist/base/index.cjs +6390 -0
  21. package/dist/base/index.cjs.map +1 -0
  22. package/dist/base/index.d.cts +21 -0
  23. package/dist/base/index.d.ts +21 -0
  24. package/dist/base/index.js +259 -0
  25. package/dist/base/index.js.map +1 -0
  26. package/dist/base/io/index.cjs +3270 -0
  27. package/dist/base/io/index.cjs.map +1 -0
  28. package/dist/base/io/index.d.cts +2245 -0
  29. package/dist/base/io/index.d.ts +2245 -0
  30. package/dist/base/io/index.js +117 -0
  31. package/dist/base/io/index.js.map +1 -0
  32. package/dist/base/meta/index.cjs +43 -0
  33. package/dist/base/meta/index.cjs.map +1 -0
  34. package/dist/base/meta/index.d.cts +45 -0
  35. package/dist/base/meta/index.d.ts +45 -0
  36. package/dist/base/meta/index.js +13 -0
  37. package/dist/base/meta/index.js.map +1 -0
  38. package/dist/base/mutation/index.cjs +200 -0
  39. package/dist/base/mutation/index.cjs.map +1 -0
  40. package/dist/base/mutation/index.d.cts +177 -0
  41. package/dist/base/mutation/index.d.ts +177 -0
  42. package/dist/base/mutation/index.js +22 -0
  43. package/dist/base/mutation/index.js.map +1 -0
  44. package/dist/base/render/index.cjs +1120 -0
  45. package/dist/base/render/index.cjs.map +1 -0
  46. package/dist/base/render/index.d.cts +227 -0
  47. package/dist/base/render/index.d.ts +227 -0
  48. package/dist/base/render/index.js +24 -0
  49. package/dist/base/render/index.js.map +1 -0
  50. package/dist/base/sources/browser/index.cjs +172 -0
  51. package/dist/base/sources/browser/index.cjs.map +1 -0
  52. package/dist/base/sources/browser/index.d.cts +84 -0
  53. package/dist/base/sources/browser/index.d.ts +84 -0
  54. package/dist/base/sources/browser/index.js +151 -0
  55. package/dist/base/sources/browser/index.js.map +1 -0
  56. package/dist/base/sources/event/index.cjs +98 -0
  57. package/dist/base/sources/event/index.cjs.map +1 -0
  58. package/dist/base/sources/event/index.d.cts +91 -0
  59. package/dist/base/sources/event/index.d.ts +91 -0
  60. package/dist/base/sources/event/index.js +13 -0
  61. package/dist/base/sources/event/index.js.map +1 -0
  62. package/dist/base/sources/index.cjs +755 -0
  63. package/dist/base/sources/index.cjs.map +1 -0
  64. package/dist/base/sources/index.d.cts +357 -0
  65. package/dist/base/sources/index.d.ts +357 -0
  66. package/dist/base/sources/index.js +42 -0
  67. package/dist/base/sources/index.js.map +1 -0
  68. package/dist/base/sources/node/index.cjs +320 -0
  69. package/dist/base/sources/node/index.cjs.map +1 -0
  70. package/dist/base/sources/node/index.d.cts +185 -0
  71. package/dist/base/sources/node/index.d.ts +185 -0
  72. package/dist/base/sources/node/index.js +306 -0
  73. package/dist/base/sources/node/index.js.map +1 -0
  74. package/dist/base/utils/index.cjs +37 -0
  75. package/dist/base/utils/index.cjs.map +1 -0
  76. package/dist/base/utils/index.d.cts +37 -0
  77. package/dist/base/utils/index.d.ts +37 -0
  78. package/dist/base/utils/index.js +11 -0
  79. package/dist/base/utils/index.js.map +1 -0
  80. package/dist/base/worker/index.cjs +548 -0
  81. package/dist/base/worker/index.cjs.map +1 -0
  82. package/dist/base/worker/index.d.cts +207 -0
  83. package/dist/base/worker/index.d.ts +207 -0
  84. package/dist/base/worker/index.js +20 -0
  85. package/dist/base/worker/index.js.map +1 -0
  86. package/dist/breaker-C9skL3d8.d.ts +175 -0
  87. package/dist/breaker-ugSdq54q.d.cts +175 -0
  88. package/dist/cascading-CSSbKGrJ.d.ts +199 -0
  89. package/dist/cascading-baGkiihI.d.cts +199 -0
  90. package/dist/chunk-22SG74BD.js +207 -0
  91. package/dist/chunk-22SG74BD.js.map +1 -0
  92. package/dist/chunk-255UCBG4.js +58 -0
  93. package/dist/chunk-255UCBG4.js.map +1 -0
  94. package/dist/chunk-2LO3EL4W.js +1 -0
  95. package/dist/chunk-2LO3EL4W.js.map +1 -0
  96. package/dist/chunk-2OB3CEJS.js +1065 -0
  97. package/dist/chunk-2OB3CEJS.js.map +1 -0
  98. package/dist/chunk-36NMM65U.js +144 -0
  99. package/dist/chunk-36NMM65U.js.map +1 -0
  100. package/dist/chunk-3CEXCBN6.js +1 -0
  101. package/dist/chunk-3CEXCBN6.js.map +1 -0
  102. package/dist/chunk-3MUSLI6E.js +105 -0
  103. package/dist/chunk-3MUSLI6E.js.map +1 -0
  104. package/dist/chunk-3PSLNJDU.js +884 -0
  105. package/dist/chunk-3PSLNJDU.js.map +1 -0
  106. package/dist/chunk-42FQ27MQ.js +594 -0
  107. package/dist/chunk-42FQ27MQ.js.map +1 -0
  108. package/dist/chunk-4GYMCUDZ.js +1085 -0
  109. package/dist/chunk-4GYMCUDZ.js.map +1 -0
  110. package/dist/chunk-4S53H2KR.js +382 -0
  111. package/dist/chunk-4S53H2KR.js.map +1 -0
  112. package/dist/chunk-4XCHZRUJ.js +128 -0
  113. package/dist/chunk-4XCHZRUJ.js.map +1 -0
  114. package/dist/chunk-5IMMNARC.js +1153 -0
  115. package/dist/chunk-5IMMNARC.js.map +1 -0
  116. package/dist/chunk-6XZYT4SW.js +256 -0
  117. package/dist/chunk-6XZYT4SW.js.map +1 -0
  118. package/dist/chunk-7EGRP2VX.js +76 -0
  119. package/dist/chunk-7EGRP2VX.js.map +1 -0
  120. package/dist/chunk-A7KV5UK4.js +150 -0
  121. package/dist/chunk-A7KV5UK4.js.map +1 -0
  122. package/dist/chunk-APY2SS5X.js +156 -0
  123. package/dist/chunk-APY2SS5X.js.map +1 -0
  124. package/dist/chunk-AZDQPQ3V.js +66 -0
  125. package/dist/chunk-AZDQPQ3V.js.map +1 -0
  126. package/dist/chunk-BU3SEFA5.js +90 -0
  127. package/dist/chunk-BU3SEFA5.js.map +1 -0
  128. package/dist/chunk-BXGZFGZ4.js +189 -0
  129. package/dist/chunk-BXGZFGZ4.js.map +1 -0
  130. package/dist/chunk-CGHORL6G.js +579 -0
  131. package/dist/chunk-CGHORL6G.js.map +1 -0
  132. package/dist/chunk-CXANAIZU.js +530 -0
  133. package/dist/chunk-CXANAIZU.js.map +1 -0
  134. package/dist/chunk-CZQHCKKG.js +1 -0
  135. package/dist/chunk-CZQHCKKG.js.map +1 -0
  136. package/dist/chunk-DKNHAICT.js +133 -0
  137. package/dist/chunk-DKNHAICT.js.map +1 -0
  138. package/dist/chunk-DM4OMPWK.js +584 -0
  139. package/dist/chunk-DM4OMPWK.js.map +1 -0
  140. package/dist/chunk-DMSNO6ZB.js +452 -0
  141. package/dist/chunk-DMSNO6ZB.js.map +1 -0
  142. package/dist/chunk-E5OZPDIW.js +229 -0
  143. package/dist/chunk-E5OZPDIW.js.map +1 -0
  144. package/dist/chunk-EHRRQ4IC.js +211 -0
  145. package/dist/chunk-EHRRQ4IC.js.map +1 -0
  146. package/dist/chunk-EVYY4X5A.js +509 -0
  147. package/dist/chunk-EVYY4X5A.js.map +1 -0
  148. package/dist/chunk-FDFD67UO.js +1 -0
  149. package/dist/chunk-FDFD67UO.js.map +1 -0
  150. package/dist/chunk-FMPF42Q4.js +13 -0
  151. package/dist/chunk-FMPF42Q4.js.map +1 -0
  152. package/dist/chunk-FW23JYNQ.js +454 -0
  153. package/dist/chunk-FW23JYNQ.js.map +1 -0
  154. package/dist/chunk-GWRNLJNW.js +2508 -0
  155. package/dist/chunk-GWRNLJNW.js.map +1 -0
  156. package/dist/chunk-HL7HUJIX.js +1 -0
  157. package/dist/chunk-HL7HUJIX.js.map +1 -0
  158. package/dist/chunk-IHTWQEDR.js +169 -0
  159. package/dist/chunk-IHTWQEDR.js.map +1 -0
  160. package/dist/chunk-IJRR6YAI.js +128 -0
  161. package/dist/chunk-IJRR6YAI.js.map +1 -0
  162. package/dist/chunk-JGFRAFDL.js +221 -0
  163. package/dist/chunk-JGFRAFDL.js.map +1 -0
  164. package/dist/chunk-JKTC747G.js +725 -0
  165. package/dist/chunk-JKTC747G.js.map +1 -0
  166. package/dist/chunk-KN3H5CNT.js +11 -0
  167. package/dist/chunk-KN3H5CNT.js.map +1 -0
  168. package/dist/chunk-KPG3DGLA.js +1 -0
  169. package/dist/chunk-KPG3DGLA.js.map +1 -0
  170. package/dist/chunk-KRNQ6RGQ.js +1 -0
  171. package/dist/chunk-KRNQ6RGQ.js.map +1 -0
  172. package/dist/chunk-MLTPJMH6.js +417 -0
  173. package/dist/chunk-MLTPJMH6.js.map +1 -0
  174. package/dist/chunk-N3SZ7BMH.js +95 -0
  175. package/dist/chunk-N3SZ7BMH.js.map +1 -0
  176. package/dist/chunk-NDUD3IMO.js +540 -0
  177. package/dist/chunk-NDUD3IMO.js.map +1 -0
  178. package/dist/chunk-NY2PYHNC.js +873 -0
  179. package/dist/chunk-NY2PYHNC.js.map +1 -0
  180. package/dist/chunk-O3MT7DYI.js +225 -0
  181. package/dist/chunk-O3MT7DYI.js.map +1 -0
  182. package/dist/chunk-OCUDSN63.js +2386 -0
  183. package/dist/chunk-OCUDSN63.js.map +1 -0
  184. package/dist/chunk-OIWU3NYV.js +199 -0
  185. package/dist/chunk-OIWU3NYV.js.map +1 -0
  186. package/dist/chunk-OQUIJT7A.js +1 -0
  187. package/dist/chunk-OQUIJT7A.js.map +1 -0
  188. package/dist/chunk-P5LBT622.js +105 -0
  189. package/dist/chunk-P5LBT622.js.map +1 -0
  190. package/dist/chunk-PKGQG5QQ.js +519 -0
  191. package/dist/chunk-PKGQG5QQ.js.map +1 -0
  192. package/dist/chunk-PKPO3JTZ.js +561 -0
  193. package/dist/chunk-PKPO3JTZ.js.map +1 -0
  194. package/dist/chunk-PL5UDIQ5.js +118 -0
  195. package/dist/chunk-PL5UDIQ5.js.map +1 -0
  196. package/dist/chunk-PZWISPIQ.js +432 -0
  197. package/dist/chunk-PZWISPIQ.js.map +1 -0
  198. package/dist/chunk-Q3EYOCZB.js +510 -0
  199. package/dist/chunk-Q3EYOCZB.js.map +1 -0
  200. package/dist/chunk-QMBYUVRL.js +15 -0
  201. package/dist/chunk-QMBYUVRL.js.map +1 -0
  202. package/dist/chunk-RAGGHLCV.js +200 -0
  203. package/dist/chunk-RAGGHLCV.js.map +1 -0
  204. package/dist/chunk-RJOG4IJU.js +1039 -0
  205. package/dist/chunk-RJOG4IJU.js.map +1 -0
  206. package/dist/chunk-SOOKUYVM.js +403 -0
  207. package/dist/chunk-SOOKUYVM.js.map +1 -0
  208. package/dist/chunk-T5BN5KG7.js +1 -0
  209. package/dist/chunk-T5BN5KG7.js.map +1 -0
  210. package/dist/chunk-TNX5ZGDJ.js +574 -0
  211. package/dist/chunk-TNX5ZGDJ.js.map +1 -0
  212. package/dist/chunk-TP7244Y6.js +207 -0
  213. package/dist/chunk-TP7244Y6.js.map +1 -0
  214. package/dist/chunk-TSBFTJKM.js +57 -0
  215. package/dist/chunk-TSBFTJKM.js.map +1 -0
  216. package/dist/chunk-URQ2CBBF.js +143 -0
  217. package/dist/chunk-URQ2CBBF.js.map +1 -0
  218. package/dist/chunk-VLAGJZSL.js +1079 -0
  219. package/dist/chunk-VLAGJZSL.js.map +1 -0
  220. package/dist/chunk-W2BOPXTI.js +1 -0
  221. package/dist/chunk-W2BOPXTI.js.map +1 -0
  222. package/dist/chunk-Y52CS6YA.js +88 -0
  223. package/dist/chunk-Y52CS6YA.js.map +1 -0
  224. package/dist/chunk-YCBUWK77.js +92 -0
  225. package/dist/chunk-YCBUWK77.js.map +1 -0
  226. package/dist/chunk-YJ4U2D2C.js +314 -0
  227. package/dist/chunk-YJ4U2D2C.js.map +1 -0
  228. package/dist/chunk-Z4YXAUDN.js +239 -0
  229. package/dist/chunk-Z4YXAUDN.js.map +1 -0
  230. package/dist/chunk-Z65DVDEQ.js +146 -0
  231. package/dist/chunk-Z65DVDEQ.js.map +1 -0
  232. package/dist/chunk-Z6EGP5D7.js +92 -0
  233. package/dist/chunk-Z6EGP5D7.js.map +1 -0
  234. package/dist/chunk-ZT4WMQW4.js +1575 -0
  235. package/dist/chunk-ZT4WMQW4.js.map +1 -0
  236. package/dist/chunk-ZVXXDWIB.js +1282 -0
  237. package/dist/chunk-ZVXXDWIB.js.map +1 -0
  238. package/dist/compat/index.cjs +3150 -6
  239. package/dist/compat/index.cjs.map +1 -1
  240. package/dist/compat/index.d.cts +116 -1
  241. package/dist/compat/index.d.ts +116 -1
  242. package/dist/compat/index.js +175 -2
  243. package/dist/compat/index.js.map +1 -1
  244. package/dist/compat/jotai/index.cjs +130 -2
  245. package/dist/compat/jotai/index.cjs.map +1 -1
  246. package/dist/compat/jotai/index.d.cts +2 -1
  247. package/dist/compat/jotai/index.d.ts +2 -1
  248. package/dist/compat/jotai/index.js +7 -2
  249. package/dist/compat/jotai/index.js.map +1 -1
  250. package/dist/compat/nanostores/index.cjs +186 -2
  251. package/dist/compat/nanostores/index.cjs.map +1 -1
  252. package/dist/compat/nanostores/index.d.cts +2 -1
  253. package/dist/compat/nanostores/index.d.ts +2 -1
  254. package/dist/compat/nanostores/index.js +21 -2
  255. package/dist/compat/nanostores/index.js.map +1 -1
  256. package/dist/compat/nestjs/index.cjs +2291 -6
  257. package/dist/compat/nestjs/index.cjs.map +1 -1
  258. package/dist/compat/nestjs/index.d.cts +10 -1
  259. package/dist/compat/nestjs/index.d.ts +10 -1
  260. package/dist/compat/nestjs/index.js +76 -2
  261. package/dist/compat/nestjs/index.js.map +1 -1
  262. package/dist/compat/react/index.cjs +95 -2
  263. package/dist/compat/react/index.cjs.map +1 -1
  264. package/dist/compat/react/index.d.cts +2 -1
  265. package/dist/compat/react/index.d.ts +2 -1
  266. package/dist/compat/react/index.js +11 -2
  267. package/dist/compat/react/index.js.map +1 -1
  268. package/dist/compat/solid/index.cjs +82 -2
  269. package/dist/compat/solid/index.cjs.map +1 -1
  270. package/dist/compat/solid/index.d.cts +2 -1
  271. package/dist/compat/solid/index.d.ts +2 -1
  272. package/dist/compat/solid/index.js +11 -2
  273. package/dist/compat/solid/index.js.map +1 -1
  274. package/dist/compat/svelte/index.cjs +85 -2
  275. package/dist/compat/svelte/index.cjs.map +1 -1
  276. package/dist/compat/svelte/index.d.cts +2 -1
  277. package/dist/compat/svelte/index.d.ts +2 -1
  278. package/dist/compat/svelte/index.js +11 -2
  279. package/dist/compat/svelte/index.js.map +1 -1
  280. package/dist/compat/vue/index.cjs +100 -2
  281. package/dist/compat/vue/index.cjs.map +1 -1
  282. package/dist/compat/vue/index.d.cts +3 -1
  283. package/dist/compat/vue/index.d.ts +3 -1
  284. package/dist/compat/vue/index.js +11 -2
  285. package/dist/compat/vue/index.js.map +1 -1
  286. package/dist/compat/zustand/index.cjs +50 -2
  287. package/dist/compat/zustand/index.cjs.map +1 -1
  288. package/dist/compat/zustand/index.d.cts +2 -1
  289. package/dist/compat/zustand/index.d.ts +2 -1
  290. package/dist/compat/zustand/index.js +7 -2
  291. package/dist/compat/zustand/index.js.map +1 -1
  292. package/dist/distill-De6Rnn15.d.cts +48 -0
  293. package/dist/distill-De6Rnn15.d.ts +48 -0
  294. package/dist/external-register-CWyroXb_.d.cts +138 -0
  295. package/dist/external-register-CWyroXb_.d.ts +138 -0
  296. package/dist/fallback-Bx46zqky.d.cts +243 -0
  297. package/dist/fallback-pIWW8A2d.d.ts +243 -0
  298. package/dist/guarded-execution-BcdtxeBk.d.ts +207 -0
  299. package/dist/guarded-execution-C-3hnP6A.d.cts +207 -0
  300. package/dist/index-B6pxYJzO.d.cts +36 -0
  301. package/dist/index-B6pxYJzO.d.ts +36 -0
  302. package/dist/index-BFsng6v1.d.cts +44 -0
  303. package/dist/index-BFsng6v1.d.ts +44 -0
  304. package/dist/index-B_p8tnvf.d.cts +770 -0
  305. package/dist/index-Bg-LwEt-.d.cts +45 -0
  306. package/dist/index-Bg-LwEt-.d.ts +45 -0
  307. package/dist/index-Brp888t0.d.cts +127 -0
  308. package/dist/index-Brp888t0.d.ts +127 -0
  309. package/dist/index-CDfk6jHN.d.cts +37 -0
  310. package/dist/index-CDfk6jHN.d.ts +37 -0
  311. package/dist/index-DLAxYaN5.d.cts +169 -0
  312. package/dist/index-DLAxYaN5.d.ts +169 -0
  313. package/dist/index-DeWbQzMe.d.cts +34 -0
  314. package/dist/index-DeWbQzMe.d.ts +34 -0
  315. package/dist/index-_HDSmPyp.d.ts +770 -0
  316. package/dist/index-dX9IzPqj.d.cts +86 -0
  317. package/dist/index-dX9IzPqj.d.ts +86 -0
  318. package/dist/index.cjs +26009 -0
  319. package/dist/index.cjs.map +1 -1
  320. package/dist/index.d.cts +55 -42
  321. package/dist/index.d.ts +55 -42
  322. package/dist/index.js +849 -0
  323. package/dist/index.js.map +1 -1
  324. package/dist/layout-types-B5aiHYgk.d.cts +72 -0
  325. package/dist/layout-types-B5aiHYgk.d.ts +72 -0
  326. package/dist/memory-composers-BryDrRBX.d.cts +529 -0
  327. package/dist/memory-composers-CVQqPYEV.d.ts +529 -0
  328. package/dist/observable-B25XqCbZ.d.cts +59 -0
  329. package/dist/observable-B25XqCbZ.d.ts +59 -0
  330. package/dist/pipeline-graph-Ce47CB6Y.d.cts +145 -0
  331. package/dist/pipeline-graph-DXCwY9vG.d.ts +145 -0
  332. package/dist/presets/ai/index.cjs +4377 -0
  333. package/dist/presets/ai/index.cjs.map +1 -0
  334. package/dist/presets/ai/index.d.cts +98 -0
  335. package/dist/presets/ai/index.d.ts +98 -0
  336. package/dist/presets/ai/index.js +54 -0
  337. package/dist/presets/ai/index.js.map +1 -0
  338. package/dist/presets/harness/index.cjs +5929 -0
  339. package/dist/presets/harness/index.cjs.map +1 -0
  340. package/dist/presets/harness/index.d.cts +566 -0
  341. package/dist/presets/harness/index.d.ts +566 -0
  342. package/dist/presets/harness/index.js +71 -0
  343. package/dist/presets/harness/index.js.map +1 -0
  344. package/dist/presets/index.cjs +9782 -0
  345. package/dist/presets/index.cjs.map +1 -0
  346. package/dist/presets/index.d.cts +28 -0
  347. package/dist/presets/index.d.ts +28 -0
  348. package/dist/presets/index.js +129 -0
  349. package/dist/presets/index.js.map +1 -0
  350. package/dist/presets/inspect/index.cjs +1087 -0
  351. package/dist/presets/inspect/index.cjs.map +1 -0
  352. package/dist/presets/inspect/index.d.cts +172 -0
  353. package/dist/presets/inspect/index.d.ts +172 -0
  354. package/dist/presets/inspect/index.js +21 -0
  355. package/dist/presets/inspect/index.js.map +1 -0
  356. package/dist/presets/resilience/index.cjs +1593 -0
  357. package/dist/presets/resilience/index.cjs.map +1 -0
  358. package/dist/presets/resilience/index.d.cts +205 -0
  359. package/dist/presets/resilience/index.d.ts +205 -0
  360. package/dist/presets/resilience/index.js +18 -0
  361. package/dist/presets/resilience/index.js.map +1 -0
  362. package/dist/rate-limiter-CEALq4N1.d.ts +559 -0
  363. package/dist/rate-limiter-DpVbSYdH.d.cts +559 -0
  364. package/dist/reactive-layout-fswlBUvX.d.cts +195 -0
  365. package/dist/reactive-layout-fswlBUvX.d.ts +195 -0
  366. package/dist/retry-BDbRZ_gx.d.ts +125 -0
  367. package/dist/retry-DWuhjvsA.d.cts +125 -0
  368. package/dist/solutions/index.cjs +8200 -0
  369. package/dist/solutions/index.cjs.map +1 -0
  370. package/dist/solutions/index.d.cts +23 -0
  371. package/dist/solutions/index.d.ts +23 -0
  372. package/dist/solutions/index.js +55 -0
  373. package/dist/solutions/index.js.map +1 -0
  374. package/dist/spawnable-5mDY501F.d.cts +746 -0
  375. package/dist/spawnable-D3lR0oQu.d.ts +746 -0
  376. package/dist/status-U-rUI79b.d.cts +84 -0
  377. package/dist/status-U-rUI79b.d.ts +84 -0
  378. package/dist/timeout-U5O4ESK3.js +12 -0
  379. package/dist/timeout-U5O4ESK3.js.map +1 -0
  380. package/dist/types-BB5Lw-pB.d.cts +442 -0
  381. package/dist/types-BB5Lw-pB.d.ts +442 -0
  382. package/dist/types-CJWIMJiZ.d.ts +548 -0
  383. package/dist/types-vCq7ShIm.d.cts +548 -0
  384. package/dist/utils/ai/browser.cjs +2169 -0
  385. package/dist/utils/ai/browser.cjs.map +1 -0
  386. package/dist/utils/ai/browser.d.cts +129 -0
  387. package/dist/utils/ai/browser.d.ts +129 -0
  388. package/dist/utils/ai/browser.js +255 -0
  389. package/dist/utils/ai/browser.js.map +1 -0
  390. package/dist/utils/ai/index.cjs +8468 -0
  391. package/dist/utils/ai/index.cjs.map +1 -0
  392. package/dist/utils/ai/index.d.cts +1777 -0
  393. package/dist/utils/ai/index.d.ts +1777 -0
  394. package/dist/utils/ai/index.js +173 -0
  395. package/dist/utils/ai/index.js.map +1 -0
  396. package/dist/utils/ai/node.cjs +648 -0
  397. package/dist/utils/ai/node.cjs.map +1 -0
  398. package/dist/utils/ai/node.d.cts +57 -0
  399. package/dist/utils/ai/node.d.ts +57 -0
  400. package/dist/utils/ai/node.js +84 -0
  401. package/dist/utils/ai/node.js.map +1 -0
  402. package/dist/utils/cqrs/index.cjs +1036 -0
  403. package/dist/utils/cqrs/index.cjs.map +1 -0
  404. package/dist/utils/cqrs/index.d.cts +438 -0
  405. package/dist/utils/cqrs/index.d.ts +438 -0
  406. package/dist/utils/cqrs/index.js +18 -0
  407. package/dist/utils/cqrs/index.js.map +1 -0
  408. package/dist/utils/demo-shell/index.cjs +865 -0
  409. package/dist/utils/demo-shell/index.cjs.map +1 -0
  410. package/dist/utils/demo-shell/index.d.cts +90 -0
  411. package/dist/utils/demo-shell/index.d.ts +90 -0
  412. package/dist/utils/demo-shell/index.js +13 -0
  413. package/dist/utils/demo-shell/index.js.map +1 -0
  414. package/dist/utils/domain-templates/index.cjs +732 -0
  415. package/dist/utils/domain-templates/index.cjs.map +1 -0
  416. package/dist/utils/domain-templates/index.d.cts +214 -0
  417. package/dist/utils/domain-templates/index.d.ts +214 -0
  418. package/dist/utils/domain-templates/index.js +17 -0
  419. package/dist/utils/domain-templates/index.js.map +1 -0
  420. package/dist/utils/graphspec/index.cjs +1174 -0
  421. package/dist/utils/graphspec/index.cjs.map +1 -0
  422. package/dist/utils/graphspec/index.d.cts +449 -0
  423. package/dist/utils/graphspec/index.d.ts +449 -0
  424. package/dist/utils/graphspec/index.js +35 -0
  425. package/dist/utils/graphspec/index.js.map +1 -0
  426. package/dist/utils/harness/index.cjs +656 -0
  427. package/dist/utils/harness/index.cjs.map +1 -0
  428. package/dist/utils/harness/index.d.cts +542 -0
  429. package/dist/utils/harness/index.d.ts +542 -0
  430. package/dist/utils/harness/index.js +56 -0
  431. package/dist/utils/harness/index.js.map +1 -0
  432. package/dist/utils/index.cjs +17614 -0
  433. package/dist/utils/index.cjs.map +1 -0
  434. package/dist/utils/index.d.cts +96 -0
  435. package/dist/utils/index.d.ts +96 -0
  436. package/dist/utils/index.js +514 -0
  437. package/dist/utils/index.js.map +1 -0
  438. package/dist/utils/inspect/index.cjs +807 -0
  439. package/dist/utils/inspect/index.cjs.map +1 -0
  440. package/dist/utils/inspect/index.d.cts +123 -0
  441. package/dist/utils/inspect/index.d.ts +123 -0
  442. package/dist/utils/inspect/index.js +30 -0
  443. package/dist/utils/inspect/index.js.map +1 -0
  444. package/dist/utils/job-queue/index.cjs +717 -0
  445. package/dist/utils/job-queue/index.cjs.map +1 -0
  446. package/dist/utils/job-queue/index.d.cts +200 -0
  447. package/dist/utils/job-queue/index.d.ts +200 -0
  448. package/dist/utils/job-queue/index.js +18 -0
  449. package/dist/utils/job-queue/index.js.map +1 -0
  450. package/dist/utils/memory/index.cjs +1456 -0
  451. package/dist/utils/memory/index.cjs.map +1 -0
  452. package/dist/utils/memory/index.d.cts +660 -0
  453. package/dist/utils/memory/index.d.ts +660 -0
  454. package/dist/utils/memory/index.js +19 -0
  455. package/dist/utils/memory/index.js.map +1 -0
  456. package/dist/utils/messaging/index.cjs +666 -0
  457. package/dist/utils/messaging/index.cjs.map +1 -0
  458. package/dist/utils/messaging/index.d.cts +562 -0
  459. package/dist/utils/messaging/index.d.ts +562 -0
  460. package/dist/utils/messaging/index.js +50 -0
  461. package/dist/utils/messaging/index.js.map +1 -0
  462. package/dist/utils/orchestration/index.cjs +876 -0
  463. package/dist/utils/orchestration/index.cjs.map +1 -0
  464. package/dist/utils/orchestration/index.d.cts +233 -0
  465. package/dist/utils/orchestration/index.d.ts +233 -0
  466. package/dist/utils/orchestration/index.js +19 -0
  467. package/dist/utils/orchestration/index.js.map +1 -0
  468. package/dist/utils/process/index.cjs +743 -0
  469. package/dist/utils/process/index.cjs.map +1 -0
  470. package/dist/utils/process/index.d.cts +411 -0
  471. package/dist/utils/process/index.d.ts +411 -0
  472. package/dist/utils/process/index.js +14 -0
  473. package/dist/utils/process/index.js.map +1 -0
  474. package/dist/utils/reactive-layout/index.cjs +1607 -0
  475. package/dist/utils/reactive-layout/index.cjs.map +1 -0
  476. package/dist/utils/reactive-layout/index.d.cts +492 -0
  477. package/dist/utils/reactive-layout/index.d.ts +492 -0
  478. package/dist/utils/reactive-layout/index.js +52 -0
  479. package/dist/utils/reactive-layout/index.js.map +1 -0
  480. package/dist/utils/reduction/index.cjs +203 -0
  481. package/dist/utils/reduction/index.cjs.map +1 -0
  482. package/dist/utils/reduction/index.d.cts +102 -0
  483. package/dist/utils/reduction/index.d.ts +102 -0
  484. package/dist/utils/reduction/index.js +14 -0
  485. package/dist/utils/reduction/index.js.map +1 -0
  486. package/dist/utils/resilience/index.cjs +1617 -0
  487. package/dist/utils/resilience/index.cjs.map +1 -0
  488. package/dist/utils/resilience/index.d.cts +9 -0
  489. package/dist/utils/resilience/index.d.ts +9 -0
  490. package/dist/utils/resilience/index.js +44 -0
  491. package/dist/utils/resilience/index.js.map +1 -0
  492. package/dist/utils/surface/index.cjs +1070 -0
  493. package/dist/utils/surface/index.cjs.map +1 -0
  494. package/dist/utils/surface/index.d.cts +240 -0
  495. package/dist/utils/surface/index.d.ts +240 -0
  496. package/dist/utils/surface/index.js +30 -0
  497. package/dist/utils/surface/index.js.map +1 -0
  498. package/dist/utils/topology-view/index.cjs +620 -0
  499. package/dist/utils/topology-view/index.cjs.map +1 -0
  500. package/dist/utils/topology-view/index.d.cts +68 -0
  501. package/dist/utils/topology-view/index.d.ts +68 -0
  502. package/dist/utils/topology-view/index.js +11 -0
  503. package/dist/utils/topology-view/index.js.map +1 -0
  504. package/package.json +293 -241
  505. package/dist/core/index.cjs +0 -21
  506. package/dist/core/index.cjs.map +0 -1
  507. package/dist/core/index.d.cts +0 -1
  508. package/dist/core/index.d.ts +0 -1
  509. package/dist/core/index.js +0 -3
  510. package/dist/core/index.js.map +0 -1
  511. package/dist/extra/browser.cjs +0 -21
  512. package/dist/extra/browser.cjs.map +0 -1
  513. package/dist/extra/browser.d.cts +0 -1
  514. package/dist/extra/browser.d.ts +0 -1
  515. package/dist/extra/browser.js +0 -3
  516. package/dist/extra/browser.js.map +0 -1
  517. package/dist/extra/index.cjs +0 -21
  518. package/dist/extra/index.cjs.map +0 -1
  519. package/dist/extra/index.d.cts +0 -1
  520. package/dist/extra/index.d.ts +0 -1
  521. package/dist/extra/index.js +0 -3
  522. package/dist/extra/index.js.map +0 -1
  523. package/dist/extra/node.cjs +0 -21
  524. package/dist/extra/node.cjs.map +0 -1
  525. package/dist/extra/node.d.cts +0 -1
  526. package/dist/extra/node.d.ts +0 -1
  527. package/dist/extra/node.js +0 -3
  528. package/dist/extra/node.js.map +0 -1
  529. package/dist/extra/operators.cjs +0 -21
  530. package/dist/extra/operators.cjs.map +0 -1
  531. package/dist/extra/operators.d.cts +0 -1
  532. package/dist/extra/operators.d.ts +0 -1
  533. package/dist/extra/operators.js +0 -3
  534. package/dist/extra/operators.js.map +0 -1
  535. package/dist/extra/reactive.cjs +0 -21
  536. package/dist/extra/reactive.cjs.map +0 -1
  537. package/dist/extra/reactive.d.cts +0 -1
  538. package/dist/extra/reactive.d.ts +0 -1
  539. package/dist/extra/reactive.js +0 -3
  540. package/dist/extra/reactive.js.map +0 -1
  541. package/dist/extra/render/index.cjs +0 -21
  542. package/dist/extra/render/index.cjs.map +0 -1
  543. package/dist/extra/render/index.d.cts +0 -1
  544. package/dist/extra/render/index.d.ts +0 -1
  545. package/dist/extra/render/index.js +0 -3
  546. package/dist/extra/render/index.js.map +0 -1
  547. package/dist/extra/sources.cjs +0 -21
  548. package/dist/extra/sources.cjs.map +0 -1
  549. package/dist/extra/sources.d.cts +0 -1
  550. package/dist/extra/sources.d.ts +0 -1
  551. package/dist/extra/sources.js +0 -3
  552. package/dist/extra/sources.js.map +0 -1
  553. package/dist/extra/storage-browser.cjs +0 -21
  554. package/dist/extra/storage-browser.cjs.map +0 -1
  555. package/dist/extra/storage-browser.d.cts +0 -1
  556. package/dist/extra/storage-browser.d.ts +0 -1
  557. package/dist/extra/storage-browser.js +0 -3
  558. package/dist/extra/storage-browser.js.map +0 -1
  559. package/dist/extra/storage-core.cjs +0 -21
  560. package/dist/extra/storage-core.cjs.map +0 -1
  561. package/dist/extra/storage-core.d.cts +0 -1
  562. package/dist/extra/storage-core.d.ts +0 -1
  563. package/dist/extra/storage-core.js +0 -3
  564. package/dist/extra/storage-core.js.map +0 -1
  565. package/dist/extra/storage-node.cjs +0 -21
  566. package/dist/extra/storage-node.cjs.map +0 -1
  567. package/dist/extra/storage-node.d.cts +0 -1
  568. package/dist/extra/storage-node.d.ts +0 -1
  569. package/dist/extra/storage-node.js +0 -3
  570. package/dist/extra/storage-node.js.map +0 -1
  571. package/dist/extra/storage-tiers-browser.cjs +0 -21
  572. package/dist/extra/storage-tiers-browser.cjs.map +0 -1
  573. package/dist/extra/storage-tiers-browser.d.cts +0 -1
  574. package/dist/extra/storage-tiers-browser.d.ts +0 -1
  575. package/dist/extra/storage-tiers-browser.js +0 -3
  576. package/dist/extra/storage-tiers-browser.js.map +0 -1
  577. package/dist/extra/storage-tiers-node.cjs +0 -21
  578. package/dist/extra/storage-tiers-node.cjs.map +0 -1
  579. package/dist/extra/storage-tiers-node.d.cts +0 -1
  580. package/dist/extra/storage-tiers-node.d.ts +0 -1
  581. package/dist/extra/storage-tiers-node.js +0 -3
  582. package/dist/extra/storage-tiers-node.js.map +0 -1
  583. package/dist/extra/storage-tiers.cjs +0 -21
  584. package/dist/extra/storage-tiers.cjs.map +0 -1
  585. package/dist/extra/storage-tiers.d.cts +0 -1
  586. package/dist/extra/storage-tiers.d.ts +0 -1
  587. package/dist/extra/storage-tiers.js +0 -3
  588. package/dist/extra/storage-tiers.js.map +0 -1
  589. package/dist/extra/storage-wal.cjs +0 -21
  590. package/dist/extra/storage-wal.cjs.map +0 -1
  591. package/dist/extra/storage-wal.d.cts +0 -1
  592. package/dist/extra/storage-wal.d.ts +0 -1
  593. package/dist/extra/storage-wal.js +0 -3
  594. package/dist/extra/storage-wal.js.map +0 -1
  595. package/dist/graph/index.cjs +0 -21
  596. package/dist/graph/index.cjs.map +0 -1
  597. package/dist/graph/index.d.cts +0 -1
  598. package/dist/graph/index.d.ts +0 -1
  599. package/dist/graph/index.js +0 -3
  600. package/dist/graph/index.js.map +0 -1
  601. package/dist/patterns/ai/browser.cjs +0 -21
  602. package/dist/patterns/ai/browser.cjs.map +0 -1
  603. package/dist/patterns/ai/browser.d.cts +0 -1
  604. package/dist/patterns/ai/browser.d.ts +0 -1
  605. package/dist/patterns/ai/browser.js +0 -3
  606. package/dist/patterns/ai/browser.js.map +0 -1
  607. package/dist/patterns/ai/index.cjs +0 -21
  608. package/dist/patterns/ai/index.cjs.map +0 -1
  609. package/dist/patterns/ai/index.d.cts +0 -1
  610. package/dist/patterns/ai/index.d.ts +0 -1
  611. package/dist/patterns/ai/index.js +0 -3
  612. package/dist/patterns/ai/index.js.map +0 -1
  613. package/dist/patterns/ai/node.cjs +0 -21
  614. package/dist/patterns/ai/node.cjs.map +0 -1
  615. package/dist/patterns/ai/node.d.cts +0 -1
  616. package/dist/patterns/ai/node.d.ts +0 -1
  617. package/dist/patterns/ai/node.js +0 -3
  618. package/dist/patterns/ai/node.js.map +0 -1
  619. package/dist/patterns/cqrs/index.cjs +0 -21
  620. package/dist/patterns/cqrs/index.cjs.map +0 -1
  621. package/dist/patterns/cqrs/index.d.cts +0 -1
  622. package/dist/patterns/cqrs/index.d.ts +0 -1
  623. package/dist/patterns/cqrs/index.js +0 -3
  624. package/dist/patterns/cqrs/index.js.map +0 -1
  625. package/dist/patterns/demo-shell/index.cjs +0 -21
  626. package/dist/patterns/demo-shell/index.cjs.map +0 -1
  627. package/dist/patterns/demo-shell/index.d.cts +0 -1
  628. package/dist/patterns/demo-shell/index.d.ts +0 -1
  629. package/dist/patterns/demo-shell/index.js +0 -3
  630. package/dist/patterns/demo-shell/index.js.map +0 -1
  631. package/dist/patterns/domain-templates/index.cjs +0 -21
  632. package/dist/patterns/domain-templates/index.cjs.map +0 -1
  633. package/dist/patterns/domain-templates/index.d.cts +0 -1
  634. package/dist/patterns/domain-templates/index.d.ts +0 -1
  635. package/dist/patterns/domain-templates/index.js +0 -3
  636. package/dist/patterns/domain-templates/index.js.map +0 -1
  637. package/dist/patterns/graphspec/index.cjs +0 -21
  638. package/dist/patterns/graphspec/index.cjs.map +0 -1
  639. package/dist/patterns/graphspec/index.d.cts +0 -1
  640. package/dist/patterns/graphspec/index.d.ts +0 -1
  641. package/dist/patterns/graphspec/index.js +0 -3
  642. package/dist/patterns/graphspec/index.js.map +0 -1
  643. package/dist/patterns/harness/index.cjs +0 -21
  644. package/dist/patterns/harness/index.cjs.map +0 -1
  645. package/dist/patterns/harness/index.d.cts +0 -1
  646. package/dist/patterns/harness/index.d.ts +0 -1
  647. package/dist/patterns/harness/index.js +0 -3
  648. package/dist/patterns/harness/index.js.map +0 -1
  649. package/dist/patterns/inspect/index.cjs +0 -21
  650. package/dist/patterns/inspect/index.cjs.map +0 -1
  651. package/dist/patterns/inspect/index.d.cts +0 -1
  652. package/dist/patterns/inspect/index.d.ts +0 -1
  653. package/dist/patterns/inspect/index.js +0 -3
  654. package/dist/patterns/inspect/index.js.map +0 -1
  655. package/dist/patterns/job-queue/index.cjs +0 -21
  656. package/dist/patterns/job-queue/index.cjs.map +0 -1
  657. package/dist/patterns/job-queue/index.d.cts +0 -1
  658. package/dist/patterns/job-queue/index.d.ts +0 -1
  659. package/dist/patterns/job-queue/index.js +0 -3
  660. package/dist/patterns/job-queue/index.js.map +0 -1
  661. package/dist/patterns/memory/index.cjs +0 -21
  662. package/dist/patterns/memory/index.cjs.map +0 -1
  663. package/dist/patterns/memory/index.d.cts +0 -1
  664. package/dist/patterns/memory/index.d.ts +0 -1
  665. package/dist/patterns/memory/index.js +0 -3
  666. package/dist/patterns/memory/index.js.map +0 -1
  667. package/dist/patterns/messaging/index.cjs +0 -21
  668. package/dist/patterns/messaging/index.cjs.map +0 -1
  669. package/dist/patterns/messaging/index.d.cts +0 -1
  670. package/dist/patterns/messaging/index.d.ts +0 -1
  671. package/dist/patterns/messaging/index.js +0 -3
  672. package/dist/patterns/messaging/index.js.map +0 -1
  673. package/dist/patterns/orchestration/index.cjs +0 -21
  674. package/dist/patterns/orchestration/index.cjs.map +0 -1
  675. package/dist/patterns/orchestration/index.d.cts +0 -1
  676. package/dist/patterns/orchestration/index.d.ts +0 -1
  677. package/dist/patterns/orchestration/index.js +0 -3
  678. package/dist/patterns/orchestration/index.js.map +0 -1
  679. package/dist/patterns/process/index.cjs +0 -21
  680. package/dist/patterns/process/index.cjs.map +0 -1
  681. package/dist/patterns/process/index.d.cts +0 -1
  682. package/dist/patterns/process/index.d.ts +0 -1
  683. package/dist/patterns/process/index.js +0 -3
  684. package/dist/patterns/process/index.js.map +0 -1
  685. package/dist/patterns/reactive-layout/index.cjs +0 -21
  686. package/dist/patterns/reactive-layout/index.cjs.map +0 -1
  687. package/dist/patterns/reactive-layout/index.d.cts +0 -1
  688. package/dist/patterns/reactive-layout/index.d.ts +0 -1
  689. package/dist/patterns/reactive-layout/index.js +0 -3
  690. package/dist/patterns/reactive-layout/index.js.map +0 -1
  691. package/dist/patterns/reduction/index.cjs +0 -21
  692. package/dist/patterns/reduction/index.cjs.map +0 -1
  693. package/dist/patterns/reduction/index.d.cts +0 -1
  694. package/dist/patterns/reduction/index.d.ts +0 -1
  695. package/dist/patterns/reduction/index.js +0 -3
  696. package/dist/patterns/reduction/index.js.map +0 -1
  697. package/dist/patterns/surface/index.cjs +0 -21
  698. package/dist/patterns/surface/index.cjs.map +0 -1
  699. package/dist/patterns/surface/index.d.cts +0 -1
  700. package/dist/patterns/surface/index.d.ts +0 -1
  701. package/dist/patterns/surface/index.js +0 -3
  702. package/dist/patterns/surface/index.js.map +0 -1
  703. package/dist/patterns/topology-view/index.cjs +0 -21
  704. package/dist/patterns/topology-view/index.cjs.map +0 -1
  705. package/dist/patterns/topology-view/index.d.cts +0 -1
  706. package/dist/patterns/topology-view/index.d.ts +0 -1
  707. package/dist/patterns/topology-view/index.js +0 -3
  708. package/dist/patterns/topology-view/index.js.map +0 -1
  709. package/dist/testing/index.cjs +0 -21
  710. package/dist/testing/index.cjs.map +0 -1
  711. package/dist/testing/index.d.cts +0 -1
  712. package/dist/testing/index.d.ts +0 -1
  713. package/dist/testing/index.js +0 -3
  714. package/dist/testing/index.js.map +0 -1
@@ -0,0 +1,175 @@
1
+ import { Node } from '@graphrefly/pure-ts/core';
2
+ import { N as NodeOrValue } from './_internal-B23BagFd.cjs';
3
+ import { B as BackoffStrategy } from './backoff-Bnb9OoPh.cjs';
4
+
5
+ /**
6
+ * Central gate-state vocabulary for resilience primitives.
7
+ *
8
+ * **DS-13.5.B follow-on (locked 2026-05-01).** Two-state base enum
9
+ * (`"open" | "closed"`) used as the literal vocabulary inside
10
+ * gate-shaped `<Primitive>State` companions on `budgetGate`. Other
11
+ * primitives extend this base with primitive-specific values:
12
+ *
13
+ * - `rateLimiter` → `GateState | "throttled"`.
14
+ * - `circuitBreaker` → `GateState | "half-open"`.
15
+ *
16
+ * Keeping the base as a separate exported type lets callers narrow
17
+ * generic gate-state consumers without coupling to any one primitive's
18
+ * extension axis.
19
+ *
20
+ * @category extra/resilience
21
+ */
22
+ type GateState = "open" | "closed";
23
+
24
+ /**
25
+ * Circuit breaker — open/half-open/closed state machine + companion bundle.
26
+ *
27
+ * - {@link circuitBreaker} returns a synchronous breaker handle (counters,
28
+ * state machine, optional reactive-options subscription).
29
+ * - {@link withBreaker} wraps a `Node<T>` and surfaces a reactive
30
+ * `Node<CircuitState>` companion (`bundle.breakerState`) for telemetry.
31
+ */
32
+
33
+ type CircuitState = "closed" | "open" | "half-open";
34
+ /**
35
+ * Lifecycle-shaped state companion emitted by {@link withBreaker}
36
+ * (DS-13.5.B, locked 2026-05-01). Pre-1.0 break vs the prior
37
+ * `Node<CircuitState>` (string-only) shape.
38
+ *
39
+ * `status` extends {@link GateState} with `"half-open"`. The numeric
40
+ * fields surface the breaker's full internal state for telemetry and
41
+ * `describe()` traversal.
42
+ *
43
+ * @category extra/resilience
44
+ */
45
+ interface BreakerState {
46
+ readonly status: GateState | "half-open";
47
+ readonly failureCount: number;
48
+ readonly openCycle: number;
49
+ readonly lastOpenedAtNs: number;
50
+ readonly halfOpenAttempts: number;
51
+ readonly lastCooldownNs: number;
52
+ }
53
+ /**
54
+ * Thrown when {@link withBreaker} is configured with `onOpen: "error"` and the breaker rejects work.
55
+ *
56
+ * @category extra
57
+ */
58
+ declare class CircuitOpenError extends Error {
59
+ name: string;
60
+ constructor();
61
+ }
62
+ interface CircuitBreakerOptions {
63
+ /** Number of consecutive failures before opening. Default: 5. */
64
+ failureThreshold?: number;
65
+ /** Base cooldown in nanoseconds before transitioning to half-open. Default: 30s. */
66
+ cooldownNs?: number;
67
+ /** Backoff strategy for cooldown escalation across consecutive open cycles. Overrides `cooldownNs` when provided. */
68
+ cooldown?: BackoffStrategy;
69
+ /** Max trial requests allowed in half-open state. Default: 1. */
70
+ halfOpenMax?: number;
71
+ /**
72
+ * Clock function returning **nanoseconds** with `monotonicNs()` semantics
73
+ * (monotonically non-decreasing; suitable for elapsed-time arithmetic — never
74
+ * use `Date.now()` because wall-clock skew can flip elapsed math negative).
75
+ * Default: `monotonicNs` from `core/clock`. Override for deterministic tests.
76
+ */
77
+ now?: () => number;
78
+ }
79
+ interface CircuitBreaker {
80
+ /** Whether a request should be allowed through. Triggers open→half-open transition when cooldown expires. */
81
+ canExecute(): boolean;
82
+ /** Record a successful execution. Resets to closed. */
83
+ recordSuccess(): void;
84
+ /** Record a failed execution. May transition to open. */
85
+ recordFailure(error?: unknown): void;
86
+ /**
87
+ * Current circuit state (read-only, does not trigger transitions).
88
+ *
89
+ * **Telemetry:** wrap with {@link withBreaker} to surface this as a reactive
90
+ * `Node<CircuitState>` companion (`bundle.breakerState`) — every state
91
+ * transition (`closed`/`open`/`half-open`) emits to subscribers.
92
+ */
93
+ readonly state: CircuitState;
94
+ /** Number of consecutive failures in the current closed period. */
95
+ readonly failureCount: number;
96
+ /** Manually reset to closed state, clearing all counters. */
97
+ reset(): void;
98
+ /**
99
+ * Release the reactive-options subscription (Tier 6.5 3.2.4, 2026-04-29).
100
+ * No-op when constructed with static options. Call when retiring a
101
+ * breaker whose options came from a `Node<CircuitBreakerOptions>` to
102
+ * avoid leaking the option-Node subscription.
103
+ */
104
+ dispose(): void;
105
+ }
106
+ /**
107
+ * Factory for a synchronous circuit breaker with `closed`, `open`, and `half-open` states.
108
+ *
109
+ * Supports escalating cooldown via an optional {@link BackoffStrategy} — each consecutive
110
+ * open→half-open→open cycle increments the backoff attempt.
111
+ *
112
+ * @param options - Threshold, cooldown, half-open limit, and optional clock
113
+ * override; OR a `Node<CircuitBreakerOptions>` carrying the same shape
114
+ * reactively (Tier 6.5 3.2.4).
115
+ * @returns {@link CircuitBreaker} instance.
116
+ *
117
+ * @remarks
118
+ * **Timing:** Uses `monotonicNs()` by default (nanoseconds). Override `now` for tests.
119
+ *
120
+ * **Reactive options (locked semantics, Tier 6.5 3.2.4, 2026-04-29).**
121
+ * When `options` is a `Node<CircuitBreakerOptions>`, the breaker
122
+ * subscribes at construction and re-reads `failureThreshold` /
123
+ * `cooldownNs` / `cooldown` / `halfOpenMax` / `now` on each DATA. **An
124
+ * option swap RESETS the breaker to `"closed"`** with all counters
125
+ * cleared — operators tuning a runaway breaker get a clean baseline.
126
+ * If retaining failure history across re-tunings matters, derive a new
127
+ * breaker per-tuning instead. Call `breaker.dispose()` when retiring to
128
+ * release the option-Node subscription.
129
+ *
130
+ * @example
131
+ * ```ts
132
+ * import { circuitBreaker, exponential, NS_PER_SEC } from "@graphrefly/graphrefly-ts";
133
+ *
134
+ * const b = circuitBreaker({
135
+ * failureThreshold: 3,
136
+ * cooldown: exponential({ baseNs: 1 * NS_PER_SEC }),
137
+ * });
138
+ * ```
139
+ *
140
+ * @category extra
141
+ */
142
+ declare function circuitBreaker(options?: NodeOrValue<CircuitBreakerOptions>): CircuitBreaker;
143
+ type WithBreakerBundle<T> = {
144
+ node: Node<T>;
145
+ breakerState: Node<BreakerState>;
146
+ };
147
+ /**
148
+ * Returns a unary wrapper that gates upstream `DATA` through a {@link CircuitBreaker}.
149
+ *
150
+ * @param breaker - Shared breaker instance (typically one per resource).
151
+ * @param options - `onOpen: "skip"` emits `RESOLVED` when open; `"error"` emits {@link CircuitOpenError}.
152
+ * @returns Function mapping `Node<T>` to `{ node, breakerState }` companion nodes.
153
+ *
154
+ * @remarks
155
+ * **Success path:** `COMPLETE` calls {@link CircuitBreaker.recordSuccess}. **Failure path:** upstream `ERROR` calls {@link CircuitBreaker.recordFailure} and is forwarded.
156
+ *
157
+ * **State telemetry:** `breakerState: Node<CircuitState>` is a reactive companion that mirrors `breaker.state` — every transition (`closed`/`open`/`half-open`) emits a `DATA`. Also accessible via `node.meta.breakerState` for `describe()` traversal.
158
+ *
159
+ * @example
160
+ * ```ts
161
+ * import { state, withBreaker, circuitBreaker } from "@graphrefly/graphrefly-ts";
162
+ *
163
+ * const b = circuitBreaker({ failureThreshold: 2 });
164
+ * const s = state(1);
165
+ * const { node, breakerState } = withBreaker(b)(s);
166
+ * ```
167
+ *
168
+ * @category extra
169
+ */
170
+ declare function withBreaker<T>(breaker: CircuitBreaker, options?: {
171
+ onOpen?: "skip" | "error";
172
+ meta?: Record<string, unknown>;
173
+ }): (source: Node<T>) => WithBreakerBundle<T>;
174
+
175
+ export { type BreakerState as B, type CircuitBreaker as C, type GateState as G, type WithBreakerBundle as W, type CircuitBreakerOptions as a, CircuitOpenError as b, type CircuitState as c, circuitBreaker as d, withBreaker as w };
@@ -0,0 +1,199 @@
1
+ import { L as LLMAdapter, a as ChatMessage, b as LLMInvokeOptions } from './types-BB5Lw-pB.js';
2
+ import { a as CircuitBreakerOptions, C as CircuitBreaker } from './breaker-C9skL3d8.js';
3
+
4
+ /**
5
+ * OpenAICompatAdapter — default fetch-backed, optional SDK-backed.
6
+ *
7
+ * Covers any provider that speaks OpenAI chat/completions. Preset base URLs
8
+ * for OpenAI, OpenRouter, Groq, Ollama, DeepSeek, xAI Grok (all expose the
9
+ * same `/v1/chat/completions` shape).
10
+ *
11
+ * Token usage mapping:
12
+ * - `prompt_tokens` → `input.regular` (minus cached_tokens)
13
+ * - `prompt_tokens_details.cached_tokens` → `input.cacheRead`
14
+ * - `prompt_tokens_details.audio_tokens` → `input.audio`
15
+ * - `completion_tokens` → `output.regular` (minus reasoning)
16
+ * - `completion_tokens_details.reasoning_tokens` → `output.reasoning`
17
+ * - `completion_tokens_details.audio_tokens` → `output.audio`
18
+ * - `completion_tokens_details.accepted_prediction_tokens` → `output.predictionAccepted`
19
+ * - `completion_tokens_details.rejected_prediction_tokens` → `output.predictionRejected`
20
+ *
21
+ * DeepSeek compatibility: `prompt_cache_hit_tokens` / `prompt_cache_miss_tokens`
22
+ * are surfaced in the `raw` field of `TokenUsage`; when present we prefer
23
+ * them over the OpenAI-style `cached_tokens` for cache-read attribution.
24
+ */
25
+
26
+ type OpenAICompatPreset = "openai" | "openrouter" | "groq" | "ollama" | "deepseek" | "xai";
27
+ interface OpenAICompatAdapterOptions {
28
+ preset?: OpenAICompatPreset;
29
+ /** Explicit provider label (defaults to preset's provider). */
30
+ provider?: string;
31
+ /** API key. Falls back to the preset's default env var on Node. */
32
+ apiKey?: string;
33
+ model?: string;
34
+ /** Override base URL (wins over `preset`). */
35
+ baseURL?: string;
36
+ /** Extra request headers. */
37
+ headers?: Record<string, string>;
38
+ /** Extra request-body fields merged on every request (OpenRouter routing etc.). */
39
+ bodyExtras?: Record<string, unknown>;
40
+ /** User-provided SDK instance (OpenAI-family shape). */
41
+ sdk?: OpenAISdkLike;
42
+ /** Custom fetch (for tests). */
43
+ fetchImpl?: typeof fetch;
44
+ }
45
+ interface OpenAISdkLike {
46
+ chat: {
47
+ completions: {
48
+ create(params: Record<string, unknown>, opts?: {
49
+ signal?: AbortSignal;
50
+ }): Promise<OpenAIChatResponse>;
51
+ };
52
+ };
53
+ }
54
+ interface OpenAIChatResponse {
55
+ id: string;
56
+ choices: ReadonlyArray<{
57
+ message: {
58
+ role: string;
59
+ content?: string | null;
60
+ tool_calls?: ReadonlyArray<{
61
+ id: string;
62
+ type: "function";
63
+ function: {
64
+ name: string;
65
+ arguments: string;
66
+ };
67
+ }>;
68
+ reasoning_content?: string;
69
+ };
70
+ finish_reason?: string;
71
+ }>;
72
+ usage?: OpenAIUsage;
73
+ model?: string;
74
+ }
75
+ interface OpenAIUsage {
76
+ prompt_tokens?: number;
77
+ completion_tokens?: number;
78
+ total_tokens?: number;
79
+ prompt_tokens_details?: {
80
+ cached_tokens?: number;
81
+ audio_tokens?: number;
82
+ };
83
+ completion_tokens_details?: {
84
+ reasoning_tokens?: number;
85
+ audio_tokens?: number;
86
+ accepted_prediction_tokens?: number;
87
+ rejected_prediction_tokens?: number;
88
+ };
89
+ prompt_cache_hit_tokens?: number;
90
+ prompt_cache_miss_tokens?: number;
91
+ }
92
+ declare function openAICompatAdapter(opts?: OpenAICompatAdapterOptions): LLMAdapter;
93
+
94
+ /**
95
+ * `createAdapter` — provider-dispatching factory.
96
+ *
97
+ * One entry point, one config object. Picks the right concrete adapter by
98
+ * `provider`, forwards everything else. Users who want finer control import
99
+ * the concrete adapter directly (`anthropicAdapter`, `openAICompatAdapter`,
100
+ * `googleAdapter`, `dryRunAdapter`, `webllmAdapter`, `chromeNanoAdapter`).
101
+ */
102
+
103
+ type AdapterProvider = "anthropic" | OpenAICompatPreset | "google" | "dry-run" | "fallback";
104
+ interface CreateAdapterOptions {
105
+ provider: AdapterProvider;
106
+ apiKey?: string;
107
+ model?: string;
108
+ baseURL?: string;
109
+ headers?: Record<string, string>;
110
+ /** OpenAI-compat bodyExtras (OpenRouter routing, etc.). */
111
+ bodyExtras?: Record<string, unknown>;
112
+ /** Provider-specific SDK instance (any of AnthropicSdkLike / OpenAISdkLike / GoogleSdkLike). */
113
+ sdk?: unknown;
114
+ /** Custom fetch (for tests). */
115
+ fetchImpl?: typeof fetch;
116
+ /** Extra per-provider options forwarded verbatim. */
117
+ extras?: Record<string, unknown>;
118
+ }
119
+ declare function createAdapter(opts: CreateAdapterOptions): LLMAdapter;
120
+
121
+ /**
122
+ * `cascadingLlmAdapter` — N-tier fallback over any mix of LLM adapters.
123
+ *
124
+ * Same structural pattern as `cascadingCache` and `Graph.attachSnapshotStorage`:
125
+ * ordered list, first-success wins, per-tier breaker optional, filter gates
126
+ * per request. Semantics:
127
+ *
128
+ * - `invoke()`: try tier 0 first. On error (or breaker-open), fall through
129
+ * to tier 1, 2, ... until one succeeds or all fail.
130
+ * - `stream()`: tries to start the stream on tier 0; once tokens begin, it
131
+ * commits — failures in mid-stream surface rather than re-starting on the
132
+ * next tier (would double-bill and confuse consumers). **State-machine
133
+ * consumers (usage accounting, UI accumulators) must handle errors in a
134
+ * catch block — no synthetic `{type: "finish"}` is emitted after a thrown
135
+ * stream error.**
136
+ * - `filter`: skips a tier for requests that use features it doesn't
137
+ * support (e.g., Chrome Nano can't do tool use).
138
+ * - `breaker`: per-tier circuit; when open, cascade treats the tier as
139
+ * unavailable and moves on immediately.
140
+ *
141
+ * On exhaustion, throws `AllTiersExhaustedError` with separate `skipped` and
142
+ * `failed` collections so consumers can distinguish "no tier applicable"
143
+ * from "all tiers failed".
144
+ */
145
+
146
+ interface AdapterTier {
147
+ name: string;
148
+ adapter: LLMAdapter;
149
+ /** Per-tier circuit breaker. If omitted, no breaker on this tier. */
150
+ breaker?: CircuitBreakerOptions | CircuitBreaker;
151
+ /** Skip this tier when the request doesn't fit (e.g. Chrome Nano + tools). */
152
+ filter?: (messages: readonly ChatMessage[], opts?: LLMInvokeOptions) => boolean;
153
+ }
154
+ interface CascadeExhaustionReport {
155
+ /** Tiers that never ran (filter returned false, or breaker was open). */
156
+ readonly skipped: ReadonlyArray<{
157
+ name: string;
158
+ reason: "filter" | "breaker";
159
+ }>;
160
+ /** Tiers that ran and threw. */
161
+ readonly failed: ReadonlyMap<string, unknown>;
162
+ }
163
+ interface CascadingLlmAdapterOptions {
164
+ onFallback?: (from: string, to: string, error: unknown) => void;
165
+ onExhausted?: (report: CascadeExhaustionReport) => void;
166
+ /** Whether to attempt stream retry on subsequent tiers before first chunk. Default true. */
167
+ streamRetryBeforeFirstChunk?: boolean;
168
+ }
169
+ declare class AllTiersExhaustedError extends Error {
170
+ name: string;
171
+ readonly skipped: ReadonlyArray<{
172
+ name: string;
173
+ reason: "filter" | "breaker";
174
+ }>;
175
+ readonly failed: ReadonlyMap<string, unknown>;
176
+ constructor(report: CascadeExhaustionReport);
177
+ }
178
+ declare function cascadingLlmAdapter(tiers: readonly AdapterTier[], opts?: CascadingLlmAdapterOptions): LLMAdapter;
179
+ /**
180
+ * Tiny type-safe constructor for an {@link AdapterTier}. Cleans up the
181
+ * heterogeneous array-type cast users (and `browser-presets.ts`) had to write
182
+ * by hand. Per Wave A Unit 13 decision.
183
+ *
184
+ * @example
185
+ * ```ts
186
+ * cascadingLlmAdapter([
187
+ * tier("local", webllmAdapter(...)),
188
+ * tier("cloud", anthropicAdapter(...), { breaker: { failureThreshold: 5 } }),
189
+ * ]);
190
+ * ```
191
+ *
192
+ * @category ai
193
+ */
194
+ declare function tier(name: string, adapter: LLMAdapter, opts?: {
195
+ breaker?: CircuitBreakerOptions | CircuitBreaker;
196
+ filter?: AdapterTier["filter"];
197
+ }): AdapterTier;
198
+
199
+ export { type AdapterProvider as A, type CascadeExhaustionReport as C, type OpenAICompatAdapterOptions as O, type AdapterTier as a, AllTiersExhaustedError as b, type CascadingLlmAdapterOptions as c, type CreateAdapterOptions as d, type OpenAICompatPreset as e, type OpenAISdkLike as f, cascadingLlmAdapter as g, createAdapter as h, openAICompatAdapter as o, tier as t };
@@ -0,0 +1,199 @@
1
+ import { L as LLMAdapter, a as ChatMessage, b as LLMInvokeOptions } from './types-BB5Lw-pB.cjs';
2
+ import { a as CircuitBreakerOptions, C as CircuitBreaker } from './breaker-ugSdq54q.cjs';
3
+
4
+ /**
5
+ * OpenAICompatAdapter — default fetch-backed, optional SDK-backed.
6
+ *
7
+ * Covers any provider that speaks OpenAI chat/completions. Preset base URLs
8
+ * for OpenAI, OpenRouter, Groq, Ollama, DeepSeek, xAI Grok (all expose the
9
+ * same `/v1/chat/completions` shape).
10
+ *
11
+ * Token usage mapping:
12
+ * - `prompt_tokens` → `input.regular` (minus cached_tokens)
13
+ * - `prompt_tokens_details.cached_tokens` → `input.cacheRead`
14
+ * - `prompt_tokens_details.audio_tokens` → `input.audio`
15
+ * - `completion_tokens` → `output.regular` (minus reasoning)
16
+ * - `completion_tokens_details.reasoning_tokens` → `output.reasoning`
17
+ * - `completion_tokens_details.audio_tokens` → `output.audio`
18
+ * - `completion_tokens_details.accepted_prediction_tokens` → `output.predictionAccepted`
19
+ * - `completion_tokens_details.rejected_prediction_tokens` → `output.predictionRejected`
20
+ *
21
+ * DeepSeek compatibility: `prompt_cache_hit_tokens` / `prompt_cache_miss_tokens`
22
+ * are surfaced in the `raw` field of `TokenUsage`; when present we prefer
23
+ * them over the OpenAI-style `cached_tokens` for cache-read attribution.
24
+ */
25
+
26
+ type OpenAICompatPreset = "openai" | "openrouter" | "groq" | "ollama" | "deepseek" | "xai";
27
+ interface OpenAICompatAdapterOptions {
28
+ preset?: OpenAICompatPreset;
29
+ /** Explicit provider label (defaults to preset's provider). */
30
+ provider?: string;
31
+ /** API key. Falls back to the preset's default env var on Node. */
32
+ apiKey?: string;
33
+ model?: string;
34
+ /** Override base URL (wins over `preset`). */
35
+ baseURL?: string;
36
+ /** Extra request headers. */
37
+ headers?: Record<string, string>;
38
+ /** Extra request-body fields merged on every request (OpenRouter routing etc.). */
39
+ bodyExtras?: Record<string, unknown>;
40
+ /** User-provided SDK instance (OpenAI-family shape). */
41
+ sdk?: OpenAISdkLike;
42
+ /** Custom fetch (for tests). */
43
+ fetchImpl?: typeof fetch;
44
+ }
45
+ interface OpenAISdkLike {
46
+ chat: {
47
+ completions: {
48
+ create(params: Record<string, unknown>, opts?: {
49
+ signal?: AbortSignal;
50
+ }): Promise<OpenAIChatResponse>;
51
+ };
52
+ };
53
+ }
54
+ interface OpenAIChatResponse {
55
+ id: string;
56
+ choices: ReadonlyArray<{
57
+ message: {
58
+ role: string;
59
+ content?: string | null;
60
+ tool_calls?: ReadonlyArray<{
61
+ id: string;
62
+ type: "function";
63
+ function: {
64
+ name: string;
65
+ arguments: string;
66
+ };
67
+ }>;
68
+ reasoning_content?: string;
69
+ };
70
+ finish_reason?: string;
71
+ }>;
72
+ usage?: OpenAIUsage;
73
+ model?: string;
74
+ }
75
+ interface OpenAIUsage {
76
+ prompt_tokens?: number;
77
+ completion_tokens?: number;
78
+ total_tokens?: number;
79
+ prompt_tokens_details?: {
80
+ cached_tokens?: number;
81
+ audio_tokens?: number;
82
+ };
83
+ completion_tokens_details?: {
84
+ reasoning_tokens?: number;
85
+ audio_tokens?: number;
86
+ accepted_prediction_tokens?: number;
87
+ rejected_prediction_tokens?: number;
88
+ };
89
+ prompt_cache_hit_tokens?: number;
90
+ prompt_cache_miss_tokens?: number;
91
+ }
92
+ declare function openAICompatAdapter(opts?: OpenAICompatAdapterOptions): LLMAdapter;
93
+
94
+ /**
95
+ * `createAdapter` — provider-dispatching factory.
96
+ *
97
+ * One entry point, one config object. Picks the right concrete adapter by
98
+ * `provider`, forwards everything else. Users who want finer control import
99
+ * the concrete adapter directly (`anthropicAdapter`, `openAICompatAdapter`,
100
+ * `googleAdapter`, `dryRunAdapter`, `webllmAdapter`, `chromeNanoAdapter`).
101
+ */
102
+
103
+ type AdapterProvider = "anthropic" | OpenAICompatPreset | "google" | "dry-run" | "fallback";
104
+ interface CreateAdapterOptions {
105
+ provider: AdapterProvider;
106
+ apiKey?: string;
107
+ model?: string;
108
+ baseURL?: string;
109
+ headers?: Record<string, string>;
110
+ /** OpenAI-compat bodyExtras (OpenRouter routing, etc.). */
111
+ bodyExtras?: Record<string, unknown>;
112
+ /** Provider-specific SDK instance (any of AnthropicSdkLike / OpenAISdkLike / GoogleSdkLike). */
113
+ sdk?: unknown;
114
+ /** Custom fetch (for tests). */
115
+ fetchImpl?: typeof fetch;
116
+ /** Extra per-provider options forwarded verbatim. */
117
+ extras?: Record<string, unknown>;
118
+ }
119
+ declare function createAdapter(opts: CreateAdapterOptions): LLMAdapter;
120
+
121
+ /**
122
+ * `cascadingLlmAdapter` — N-tier fallback over any mix of LLM adapters.
123
+ *
124
+ * Same structural pattern as `cascadingCache` and `Graph.attachSnapshotStorage`:
125
+ * ordered list, first-success wins, per-tier breaker optional, filter gates
126
+ * per request. Semantics:
127
+ *
128
+ * - `invoke()`: try tier 0 first. On error (or breaker-open), fall through
129
+ * to tier 1, 2, ... until one succeeds or all fail.
130
+ * - `stream()`: tries to start the stream on tier 0; once tokens begin, it
131
+ * commits — failures in mid-stream surface rather than re-starting on the
132
+ * next tier (would double-bill and confuse consumers). **State-machine
133
+ * consumers (usage accounting, UI accumulators) must handle errors in a
134
+ * catch block — no synthetic `{type: "finish"}` is emitted after a thrown
135
+ * stream error.**
136
+ * - `filter`: skips a tier for requests that use features it doesn't
137
+ * support (e.g., Chrome Nano can't do tool use).
138
+ * - `breaker`: per-tier circuit; when open, cascade treats the tier as
139
+ * unavailable and moves on immediately.
140
+ *
141
+ * On exhaustion, throws `AllTiersExhaustedError` with separate `skipped` and
142
+ * `failed` collections so consumers can distinguish "no tier applicable"
143
+ * from "all tiers failed".
144
+ */
145
+
146
+ interface AdapterTier {
147
+ name: string;
148
+ adapter: LLMAdapter;
149
+ /** Per-tier circuit breaker. If omitted, no breaker on this tier. */
150
+ breaker?: CircuitBreakerOptions | CircuitBreaker;
151
+ /** Skip this tier when the request doesn't fit (e.g. Chrome Nano + tools). */
152
+ filter?: (messages: readonly ChatMessage[], opts?: LLMInvokeOptions) => boolean;
153
+ }
154
+ interface CascadeExhaustionReport {
155
+ /** Tiers that never ran (filter returned false, or breaker was open). */
156
+ readonly skipped: ReadonlyArray<{
157
+ name: string;
158
+ reason: "filter" | "breaker";
159
+ }>;
160
+ /** Tiers that ran and threw. */
161
+ readonly failed: ReadonlyMap<string, unknown>;
162
+ }
163
+ interface CascadingLlmAdapterOptions {
164
+ onFallback?: (from: string, to: string, error: unknown) => void;
165
+ onExhausted?: (report: CascadeExhaustionReport) => void;
166
+ /** Whether to attempt stream retry on subsequent tiers before first chunk. Default true. */
167
+ streamRetryBeforeFirstChunk?: boolean;
168
+ }
169
+ declare class AllTiersExhaustedError extends Error {
170
+ name: string;
171
+ readonly skipped: ReadonlyArray<{
172
+ name: string;
173
+ reason: "filter" | "breaker";
174
+ }>;
175
+ readonly failed: ReadonlyMap<string, unknown>;
176
+ constructor(report: CascadeExhaustionReport);
177
+ }
178
+ declare function cascadingLlmAdapter(tiers: readonly AdapterTier[], opts?: CascadingLlmAdapterOptions): LLMAdapter;
179
+ /**
180
+ * Tiny type-safe constructor for an {@link AdapterTier}. Cleans up the
181
+ * heterogeneous array-type cast users (and `browser-presets.ts`) had to write
182
+ * by hand. Per Wave A Unit 13 decision.
183
+ *
184
+ * @example
185
+ * ```ts
186
+ * cascadingLlmAdapter([
187
+ * tier("local", webllmAdapter(...)),
188
+ * tier("cloud", anthropicAdapter(...), { breaker: { failureThreshold: 5 } }),
189
+ * ]);
190
+ * ```
191
+ *
192
+ * @category ai
193
+ */
194
+ declare function tier(name: string, adapter: LLMAdapter, opts?: {
195
+ breaker?: CircuitBreakerOptions | CircuitBreaker;
196
+ filter?: AdapterTier["filter"];
197
+ }): AdapterTier;
198
+
199
+ export { type AdapterProvider as A, type CascadeExhaustionReport as C, type OpenAICompatAdapterOptions as O, type AdapterTier as a, AllTiersExhaustedError as b, type CascadingLlmAdapterOptions as c, type CreateAdapterOptions as d, type OpenAICompatPreset as e, type OpenAISdkLike as f, cascadingLlmAdapter as g, createAdapter as h, openAICompatAdapter as o, tier as t };