@graphrefly/graphrefly 0.30.0 → 0.32.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 (253) hide show
  1. package/dist/{cascading-dNCtjW8j.d.cts → cascading-BfQmSmjU.d.cts} +21 -2
  2. package/dist/{cascading-BszPheHD.d.ts → cascading-D3sapjue.d.ts} +21 -2
  3. package/dist/chunk-2JNT5NDF.js +61 -0
  4. package/dist/{chunk-DDPYNMGG.js → chunk-2RH4QNDQ.js} +1 -1
  5. package/dist/chunk-4JBKKUCJ.js +7 -0
  6. package/dist/{chunk-SLMYTGTU.js → chunk-4UUDNFYG.js} +1 -1
  7. package/dist/chunk-4VXL3UZK.js +1 -0
  8. package/dist/{chunk-SHYH5SXV.js → chunk-4YGJ7KZ6.js} +1 -1
  9. package/dist/{chunk-GJR3P6JG.js → chunk-5PBXUVHI.js} +1 -1
  10. package/dist/{chunk-W4TSQ6RJ.js → chunk-7AJKUA36.js} +1 -1
  11. package/dist/{chunk-XQAXYVXX.js → chunk-7EMUF2RY.js} +1 -1
  12. package/dist/chunk-7JZ3YORY.js +80 -0
  13. package/dist/chunk-7QMVU3IX.js +1 -0
  14. package/dist/{chunk-WANIEEKV.js → chunk-7QS77X6G.js} +1 -1
  15. package/dist/{chunk-BA5URFYW.js → chunk-A4JT4SAD.js} +1 -1
  16. package/dist/{chunk-Y36UZ5VS.js → chunk-BU4SUZSA.js} +1 -1
  17. package/dist/{chunk-P7JXGKDO.js → chunk-CNXUW2CU.js} +1 -1
  18. package/dist/{chunk-Y32RJO24.js → chunk-CZVYLXFK.js} +1 -1
  19. package/dist/{chunk-567NWZ3T.js → chunk-DWIAG62L.js} +1 -1
  20. package/dist/chunk-EIFHFDFD.js +1 -0
  21. package/dist/chunk-FTA5TB2A.js +1 -0
  22. package/dist/{chunk-T5SHIKJD.js → chunk-JAHAJU4G.js} +1 -1
  23. package/dist/{chunk-AV3PIDFQ.js → chunk-JYMNVEH6.js} +1 -1
  24. package/dist/{chunk-5Z4HDCO6.js → chunk-K54OKWNY.js} +1 -1
  25. package/dist/chunk-KD3IYBTD.js +3 -0
  26. package/dist/{chunk-3NEPQO2E.js → chunk-LG73TUF4.js} +2 -2
  27. package/dist/chunk-LJGPOJHS.js +1 -0
  28. package/dist/chunk-LWGLBCMU.js +1 -0
  29. package/dist/{chunk-BKPLTBL5.js → chunk-M2VFLRPJ.js} +1 -1
  30. package/dist/{chunk-GNCBXARM.js → chunk-MFNOZ5E6.js} +1 -1
  31. package/dist/{chunk-TWMEGG45.js → chunk-N2KKISCE.js} +1 -1
  32. package/dist/chunk-PNTBXOQ6.js +5 -0
  33. package/dist/{chunk-73Z3W2RN.js → chunk-PWKLZ2XU.js} +1 -1
  34. package/dist/{chunk-7TDOES3L.js → chunk-Q2SY7M7K.js} +1 -1
  35. package/dist/{chunk-OL33ZI6R.js → chunk-RWGJQQLT.js} +1 -1
  36. package/dist/chunk-SGS4OJGS.js +1 -0
  37. package/dist/{chunk-4OFIQ66T.js → chunk-TOCCHQI6.js} +1 -1
  38. package/dist/chunk-UMH3HSP7.js +1 -0
  39. package/dist/{chunk-XHVB6G6M.js → chunk-UXEB35L4.js} +1 -1
  40. package/dist/{chunk-33FA6V4B.js → chunk-VXJX3ZZP.js} +1 -1
  41. package/dist/{chunk-BZP5T4X6.js → chunk-W6FQIFVE.js} +1 -1
  42. package/dist/{chunk-RD52SNH2.js → chunk-WE32AFFA.js} +1 -1
  43. package/dist/{chunk-KA6MMXIY.js → chunk-WF3V5X2L.js} +1 -1
  44. package/dist/chunk-WQ7I7JVU.js +1 -0
  45. package/dist/{chunk-4JJCCD5S.js → chunk-X4OOM6QU.js} +1 -1
  46. package/dist/{chunk-AUY2YKCO.js → chunk-XRSHMHEG.js} +1 -1
  47. package/dist/chunk-Y26UN6J5.js +18 -0
  48. package/dist/{chunk-VWPRPPKR.js → chunk-ZWETYYQG.js} +1 -1
  49. package/dist/compat/index.cjs +2 -2
  50. package/dist/compat/index.d.cts +5 -5
  51. package/dist/compat/index.d.ts +5 -5
  52. package/dist/compat/index.js +1 -1
  53. package/dist/compat/jotai/index.cjs +1 -1
  54. package/dist/compat/jotai/index.js +1 -1
  55. package/dist/compat/nanostores/index.cjs +1 -1
  56. package/dist/compat/nanostores/index.js +1 -1
  57. package/dist/compat/nestjs/index.cjs +5 -5
  58. package/dist/compat/nestjs/index.d.cts +3 -3
  59. package/dist/compat/nestjs/index.d.ts +3 -3
  60. package/dist/compat/nestjs/index.js +1 -1
  61. package/dist/compat/zustand/index.cjs +2 -2
  62. package/dist/compat/zustand/index.d.cts +2 -2
  63. package/dist/compat/zustand/index.d.ts +2 -2
  64. package/dist/compat/zustand/index.js +1 -1
  65. package/dist/{composite-DGspwCqk.d.ts → composite-BY9hMxN7.d.ts} +1 -1
  66. package/dist/{composite-nrRumJ7l.d.cts → composite-CH0S8DFn.d.cts} +1 -1
  67. package/dist/content-addressed-storage-BUiREIuj.d.ts +124 -0
  68. package/dist/content-addressed-storage-DqIWCmZG.d.cts +124 -0
  69. package/dist/core/index.cjs +1 -1
  70. package/dist/core/index.js +1 -1
  71. package/dist/extra/browser.cjs +1 -1
  72. package/dist/extra/browser.js +1 -1
  73. package/dist/extra/index.cjs +18 -18
  74. package/dist/extra/index.d.cts +7 -6
  75. package/dist/extra/index.d.ts +7 -6
  76. package/dist/extra/index.js +1 -1
  77. package/dist/extra/node.cjs +2 -2
  78. package/dist/extra/node.js +1 -1
  79. package/dist/extra/operators.cjs +1 -1
  80. package/dist/extra/operators.d.cts +41 -1
  81. package/dist/extra/operators.d.ts +41 -1
  82. package/dist/extra/operators.js +1 -1
  83. package/dist/extra/reactive.cjs +1 -1
  84. package/dist/extra/reactive.d.cts +1 -1
  85. package/dist/extra/reactive.d.ts +1 -1
  86. package/dist/extra/reactive.js +1 -1
  87. package/dist/extra/sources.cjs +1 -1
  88. package/dist/extra/sources.d.cts +62 -2
  89. package/dist/extra/sources.d.ts +62 -2
  90. package/dist/extra/sources.js +1 -1
  91. package/dist/extra/storage-browser.cjs +1 -1
  92. package/dist/extra/storage-browser.js +1 -1
  93. package/dist/{fallback-BaTS7vVY.d.cts → fallback-Cb3GH1O7.d.cts} +6 -14
  94. package/dist/{fallback-eOm3LNxP.d.ts → fallback-DRjJ_ZM8.d.ts} +6 -14
  95. package/dist/graph/index.cjs +4 -4
  96. package/dist/graph/index.d.cts +3 -3
  97. package/dist/graph/index.d.ts +3 -3
  98. package/dist/graph/index.js +1 -1
  99. package/dist/{graph-CWeI0aHd.d.ts → graph-BOhEGJ6E.d.ts} +10 -0
  100. package/dist/{graph-C4Uxwv0T.d.cts → graph-CdJeX7O7.d.cts} +10 -0
  101. package/dist/{index-B-z8WaSd.d.cts → index-BDLy6CQ9.d.cts} +1 -1
  102. package/dist/{index-iBp74eGU.d.cts → index-BJDXj9Wf.d.cts} +2 -2
  103. package/dist/{index-BBINVimG.d.ts → index-BUZPTPSQ.d.ts} +2 -2
  104. package/dist/{index-DnrZghBB.d.ts → index-BbcSZCAG.d.ts} +1 -1
  105. package/dist/{index-lKuLYmHO.d.cts → index-BiGeETJs.d.cts} +1 -1
  106. package/dist/{index-BHu_Wba0.d.cts → index-BmZb8fNF.d.cts} +3 -3
  107. package/dist/{index-Docdiu9a.d.ts → index-Bnmttu35.d.ts} +1 -1
  108. package/dist/{index-D6ajK8Mh.d.cts → index-BuN2wGJs.d.cts} +517 -134
  109. package/dist/{index-Cy7eFeIX.d.cts → index-BwdPDWI4.d.cts} +1 -1
  110. package/dist/{index-DylQCKEL.d.cts → index-BzxU4yhV.d.cts} +11 -2
  111. package/dist/{index-D9Y_u6BG.d.cts → index-C-Gsh-0a.d.cts} +2 -2
  112. package/dist/{index-ybtSyjWB.d.cts → index-C22aTC1X.d.cts} +5 -5
  113. package/dist/{index-yIdWFo2b.d.cts → index-C4QTaDli.d.cts} +2 -2
  114. package/dist/{index-BJHQUCZx.d.ts → index-C7RqYbOZ.d.ts} +82 -7
  115. package/dist/{index-C5Ghnp5B.d.ts → index-C9qCLIN4.d.ts} +2 -2
  116. package/dist/{index-DVNLe3pS.d.cts → index-CCdg0JLX.d.cts} +1 -1
  117. package/dist/{index-B5iVOD7w.d.ts → index-CEoU-r-g.d.ts} +2 -2
  118. package/dist/{index-CfFYyLR8.d.ts → index-CHfBm51k.d.ts} +11 -2
  119. package/dist/{index-Dljd76bC.d.ts → index-CNyiYQWF.d.ts} +5 -5
  120. package/dist/{index-C6NBfXj-.d.ts → index-CVevMZ0n.d.ts} +2 -2
  121. package/dist/{index-DGb1awva.d.ts → index-CZUzi6Dy.d.ts} +2 -2
  122. package/dist/{index-FrYrV-Vf.d.ts → index-Ckl03Q0s.d.ts} +1 -1
  123. package/dist/{index-Bvi5uJxX.d.ts → index-CmSjld-4.d.ts} +1 -1
  124. package/dist/{index-9iguV3bF.d.cts → index-CnjUhRbs.d.cts} +2 -2
  125. package/dist/{index-C98oJsEs.d.cts → index-D3HcdZ4d.d.cts} +1 -1
  126. package/dist/{index-IZ3l_vQ9.d.ts → index-DD1czHj3.d.ts} +1 -1
  127. package/dist/{index-BS220yqj.d.cts → index-DNhTQReY.d.cts} +82 -7
  128. package/dist/{index-UZO988ox.d.cts → index-DSawGt8n.d.cts} +2 -2
  129. package/dist/{index-CcpEvuPl.d.cts → index-DUkuH3jP.d.cts} +1 -1
  130. package/dist/{index-CRAkoq-y.d.cts → index-DY2QbdoP.d.cts} +1 -1
  131. package/dist/{index-CvS9IuTG.d.ts → index-Dbmj0iYR.d.ts} +1 -1
  132. package/dist/{index-ClgKmOHe.d.ts → index-DhlAMlm9.d.ts} +517 -134
  133. package/dist/{index-ClB7TCfL.d.cts → index-DlGaEBW5.d.cts} +2 -2
  134. package/dist/{index-CotRMjtJ.d.ts → index-Dp_pS7Bw.d.ts} +1 -1
  135. package/dist/{index-Cc8VQIgL.d.ts → index-Dxk-pUQI.d.ts} +2 -2
  136. package/dist/{index-DBQUKh59.d.cts → index-EGjF6iSY.d.cts} +3 -3
  137. package/dist/{index-D9HrBx2J.d.ts → index-LGzAYqdR.d.ts} +1 -1
  138. package/dist/{index-DR3gf_DG.d.cts → index-LzCJ0kMT.d.cts} +2 -2
  139. package/dist/{index-RQg6lTrN.d.ts → index-MV2yGIAq.d.ts} +2 -2
  140. package/dist/{index-Bs3-LC83.d.cts → index-_BXz9K7b.d.cts} +1 -1
  141. package/dist/{index-SSGqF8mI.d.cts → index-aBqZUx3B.d.cts} +1 -1
  142. package/dist/{index-CFW32Dy1.d.ts → index-eYHRkoK-.d.ts} +1 -1
  143. package/dist/{index-B2HBxvMb.d.ts → index-gXTVbSax.d.ts} +3 -3
  144. package/dist/{index-B8Aj_z8S.d.cts → index-j33Lfb1G.d.cts} +23 -2
  145. package/dist/{index-BEpRsvhg.d.ts → index-lpGUhTBn.d.ts} +3 -3
  146. package/dist/{index-BXbQUn4n.d.ts → index-zMQIQuDu.d.ts} +23 -2
  147. package/dist/index.cjs +106 -125
  148. package/dist/index.d.cts +34 -33
  149. package/dist/index.d.ts +34 -33
  150. package/dist/index.js +1 -1
  151. package/dist/patterns/ai/browser.cjs +5 -22
  152. package/dist/patterns/ai/browser.d.cts +3 -3
  153. package/dist/patterns/ai/browser.d.ts +3 -3
  154. package/dist/patterns/ai/browser.js +1 -1
  155. package/dist/patterns/ai/index.cjs +30 -44
  156. package/dist/patterns/ai/index.d.cts +13 -11
  157. package/dist/patterns/ai/index.d.ts +13 -11
  158. package/dist/patterns/ai/index.js +1 -1
  159. package/dist/patterns/ai/node.cjs +2 -2
  160. package/dist/patterns/ai/node.d.cts +5 -4
  161. package/dist/patterns/ai/node.d.ts +5 -4
  162. package/dist/patterns/ai/node.js +1 -1
  163. package/dist/patterns/audit/index.cjs +3 -3
  164. package/dist/patterns/audit/index.d.cts +3 -3
  165. package/dist/patterns/audit/index.d.ts +3 -3
  166. package/dist/patterns/audit/index.js +1 -1
  167. package/dist/patterns/cqrs/index.cjs +6 -6
  168. package/dist/patterns/cqrs/index.d.cts +2 -2
  169. package/dist/patterns/cqrs/index.d.ts +2 -2
  170. package/dist/patterns/cqrs/index.js +1 -1
  171. package/dist/patterns/demo-shell/index.cjs +2 -2
  172. package/dist/patterns/demo-shell/index.d.cts +3 -3
  173. package/dist/patterns/demo-shell/index.d.ts +3 -3
  174. package/dist/patterns/demo-shell/index.js +1 -1
  175. package/dist/patterns/domain-templates/index.cjs +6 -6
  176. package/dist/patterns/domain-templates/index.d.cts +2 -2
  177. package/dist/patterns/domain-templates/index.d.ts +2 -2
  178. package/dist/patterns/domain-templates/index.js +1 -1
  179. package/dist/patterns/graphspec/index.cjs +27 -25
  180. package/dist/patterns/graphspec/index.d.cts +3 -3
  181. package/dist/patterns/graphspec/index.d.ts +3 -3
  182. package/dist/patterns/graphspec/index.js +1 -1
  183. package/dist/patterns/guarded-execution/index.cjs +7 -7
  184. package/dist/patterns/guarded-execution/index.d.cts +4 -4
  185. package/dist/patterns/guarded-execution/index.d.ts +4 -4
  186. package/dist/patterns/guarded-execution/index.js +1 -1
  187. package/dist/patterns/harness/index.cjs +12 -11
  188. package/dist/patterns/harness/index.d.cts +6 -6
  189. package/dist/patterns/harness/index.d.ts +6 -6
  190. package/dist/patterns/harness/index.js +1 -1
  191. package/dist/patterns/job-queue/index.cjs +5 -5
  192. package/dist/patterns/job-queue/index.d.cts +2 -2
  193. package/dist/patterns/job-queue/index.d.ts +2 -2
  194. package/dist/patterns/job-queue/index.js +1 -1
  195. package/dist/patterns/lens/index.cjs +5 -5
  196. package/dist/patterns/lens/index.d.cts +4 -4
  197. package/dist/patterns/lens/index.d.ts +4 -4
  198. package/dist/patterns/lens/index.js +1 -1
  199. package/dist/patterns/memory/index.cjs +4 -4
  200. package/dist/patterns/memory/index.d.cts +2 -2
  201. package/dist/patterns/memory/index.d.ts +2 -2
  202. package/dist/patterns/memory/index.js +1 -1
  203. package/dist/patterns/messaging/index.cjs +5 -5
  204. package/dist/patterns/messaging/index.d.cts +2 -2
  205. package/dist/patterns/messaging/index.d.ts +2 -2
  206. package/dist/patterns/messaging/index.js +1 -1
  207. package/dist/patterns/orchestration/index.cjs +7 -7
  208. package/dist/patterns/orchestration/index.d.cts +2 -2
  209. package/dist/patterns/orchestration/index.d.ts +2 -2
  210. package/dist/patterns/orchestration/index.js +1 -1
  211. package/dist/patterns/reactive-layout/index.cjs +2 -2
  212. package/dist/patterns/reactive-layout/index.d.cts +3 -3
  213. package/dist/patterns/reactive-layout/index.d.ts +3 -3
  214. package/dist/patterns/reactive-layout/index.js +1 -1
  215. package/dist/patterns/reduction/index.cjs +5 -5
  216. package/dist/patterns/reduction/index.d.cts +2 -2
  217. package/dist/patterns/reduction/index.d.ts +2 -2
  218. package/dist/patterns/reduction/index.js +1 -1
  219. package/dist/patterns/refine-loop/index.cjs +8 -8
  220. package/dist/patterns/refine-loop/index.d.cts +3 -3
  221. package/dist/patterns/refine-loop/index.d.ts +3 -3
  222. package/dist/patterns/refine-loop/index.js +1 -1
  223. package/dist/patterns/resilient-pipeline/index.cjs +1 -1
  224. package/dist/patterns/resilient-pipeline/index.d.cts +3 -3
  225. package/dist/patterns/resilient-pipeline/index.d.ts +3 -3
  226. package/dist/patterns/resilient-pipeline/index.js +1 -1
  227. package/dist/patterns/surface/index.cjs +15 -13
  228. package/dist/patterns/surface/index.d.cts +4 -4
  229. package/dist/patterns/surface/index.d.ts +4 -4
  230. package/dist/patterns/surface/index.js +1 -1
  231. package/dist/{reactive-layout-BAr6-_o5.d.ts → reactive-layout-Bq0rA2Wb.d.ts} +1 -1
  232. package/dist/{reactive-layout-5oEn8lHM.d.cts → reactive-layout-Dhhe54Oj.d.cts} +1 -1
  233. package/dist/{reactive-map-BvDrRuwt.d.ts → reactive-map-CtRaCddO.d.ts} +59 -1
  234. package/dist/{reactive-map-CmlPPKHN.d.cts → reactive-map-IJIfZxoh.d.cts} +59 -1
  235. package/dist/{resilience-XRUF267O.js → resilience-IVNDYORD.js} +1 -1
  236. package/dist/{topology-tree-CVREibAc.d.cts → topology-tree-CpSjvIXp.d.cts} +1 -1
  237. package/dist/{topology-tree-CkjojcB6.d.ts → topology-tree-DAbCV2Yw.d.ts} +1 -1
  238. package/dist/{types-O3GzJY2U.d.cts → types-BgMqbc7N.d.cts} +41 -14
  239. package/dist/{types-u64Ose53.d.ts → types-CdfO2QTt.d.ts} +41 -14
  240. package/package.json +1 -1
  241. package/dist/chunk-2GQREQ6C.js +0 -1
  242. package/dist/chunk-4C2OR2GH.js +0 -18
  243. package/dist/chunk-5JDE5JHE.js +0 -1
  244. package/dist/chunk-7JDLFI6N.js +0 -1
  245. package/dist/chunk-AMBYCIOH.js +0 -3
  246. package/dist/chunk-GLSM33ZM.js +0 -78
  247. package/dist/chunk-ISCENNXS.js +0 -1
  248. package/dist/chunk-IUK4EFCE.js +0 -1
  249. package/dist/chunk-KASHOCF5.js +0 -1
  250. package/dist/chunk-LI3E75VE.js +0 -64
  251. package/dist/chunk-MGKAO4EK.js +0 -7
  252. package/dist/chunk-NSG4C6BF.js +0 -23
  253. package/dist/chunk-VIEUJSTT.js +0 -1
@@ -1,25 +1,8 @@
1
- "use strict";var Ie=Object.create;var P=Object.defineProperty;var Ue=Object.getOwnPropertyDescriptor;var De=Object.getOwnPropertyNames;var Fe=Object.getPrototypeOf,Ke=Object.prototype.hasOwnProperty;var M=(e,t)=>()=>(e&&(t=e(e=0)),t);var je=(e,t)=>{for(var r in t)P(e,r,{get:t[r],enumerable:!0})},te=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of De(t))!Ke.call(e,i)&&i!==r&&P(e,i,{get:()=>t[i],enumerable:!(n=Ue(t,i))||n.enumerable});return e};var Be=(e,t,r)=>(r=e!=null?Ie(Fe(e)):{},te(t||!e||!e.__esModule?P(r,"default",{value:e,enumerable:!0}):r,e)),Ge=e=>te(P({},"__esModule",{value:!0}),e);function h(){return Math.trunc(performance.now()*1e6)}function I(){return Date.now()*1e6}var A=M(()=>{"use strict"});var T,V=M(()=>{"use strict";T=class{_timer;_gen=0;start(t,r){this.cancel(),this._gen+=1;let n=this._gen;this._timer=setTimeout(()=>{this._timer=void 0,n===this._gen&&r()},t)}cancel(){this._timer!==void 0&&(clearTimeout(this._timer),this._timer=void 0)}get pending(){return this._timer!==void 0}}});var Xe,de,ue,pe,Qe,Ze,Y,fe,et,tt,nt,Kt,rt,ot,jt,Bt,Gt,$t,Wt,me=M(()=>{"use strict";Xe=Symbol.for("graphrefly/START"),de=Symbol.for("graphrefly/DATA"),ue=Symbol.for("graphrefly/DIRTY"),pe=Symbol.for("graphrefly/RESOLVED"),Qe=Symbol.for("graphrefly/INVALIDATE"),Ze=Symbol.for("graphrefly/TEARDOWN"),Y=Symbol.for("graphrefly/COMPLETE"),fe=Symbol.for("graphrefly/ERROR"),et=Object.freeze([ue]),tt=Object.freeze([pe]),nt=Object.freeze([Qe]),Kt=Object.freeze([Xe]),rt=Object.freeze([Y]),ot=Object.freeze([Ze]),jt=Object.freeze([et]),Bt=Object.freeze([tt]),Gt=Object.freeze([nt]),$t=Object.freeze([rt]),Wt=Object.freeze([ot])});function ge(e){return new Promise((t,r)=>{let n=!1,i=!1,a;a=e.subscribe(s=>{for(let o of s){if(n)return;if(o[0]===de){n=!0,t(o[1]),a?(a(),a=void 0):i=!0;return}if(o[0]===fe){n=!0,r(o[1]),a?(a(),a=void 0):i=!0;return}if(o[0]===Y){n=!0,r(new Error("completed without DATA")),a?(a(),a=void 0):i=!0;return}}}),i&&(a?.(),a=void 0)})}var ye=M(()=>{"use strict";me()});function At(e){return e<0?0:e}function Ne(e){let t=Math.max(1,e?.failureThreshold??5),r=At(e?.cooldownNs??30*1e9),n=e?.cooldown??null,i=Math.max(1,e?.halfOpenMax??1),a=e?.now??h,s="closed",o=0,c=0,u=0,l=r,d=0;function p(){if(!n)return r;let g=n(c);return g!==null?g:r}function m(){s="open",l=p(),u=a(),d=0}return{canExecute(){return s==="closed"?!0:s==="open"?a()-u>=l?(s="half-open",d=1,!0):!1:d<i?(d++,!0):!1},recordSuccess(){s==="half-open"?(s="closed",o=0,c=0):s==="closed"&&(o=0)},recordFailure(g){if(s==="half-open"){c++,m();return}s==="closed"&&(o++,o>=t&&m())},get state(){return s},get failureCount(){return o},reset(){s="closed",o=0,c=0,d=0}}}var Pe=M(()=>{"use strict";A()});var Tt={};je(Tt,{chromeNanoAdapter:()=>C,cloudFirstPreset:()=>xt,localFirstPreset:()=>Lt,offlinePreset:()=>Rt,webllmAdapter:()=>S});module.exports=Ge(Tt);A();function ne(){let e=new Error("aborted");return e.name="AbortError",e}function C(e={}){let t=e.streamMode??"accumulated",r=e.navigatorOverride??globalThis.navigator,n=()=>{let o=r?.ai;if(!o?.languageModel)throw new Error("chromeNanoAdapter: Chrome AI languageModel not available (requires Chrome 131+ with flag/OT).");return o},i=async o=>n().languageModel.create({systemPrompt:o?.systemPrompt??e.systemPrompt,temperature:o?.temperature??e.temperature,topK:e.topK,signal:o?.signal}),a=o=>{let c=[];for(let u of o)u.role!=="system"&&c.push(`${u.role}: ${u.content}`);return c.join(`
1
+ "use strict";var Ut=Object.create;var ee=Object.defineProperty;var Bt=Object.getOwnPropertyDescriptor;var Ht=Object.getOwnPropertyNames;var jt=Object.getPrototypeOf,Gt=Object.prototype.hasOwnProperty;var E=(e,t)=>()=>(e&&(t=e(e=0)),t);var Vt=(e,t)=>{for(var n in t)ee(e,n,{get:t[n],enumerable:!0})},je=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Ht(t))!Gt.call(e,s)&&s!==n&&ee(e,s,{get:()=>t[s],enumerable:!(r=Bt(t,s))||r.enumerable});return e};var Kt=(e,t,n)=>(n=e!=null?Ut(jt(e)):{},je(t||!e||!e.__esModule?ee(n,"default",{value:e,enumerable:!0}):n,e)),Wt=e=>je(ee({},"__esModule",{value:!0}),e);function w(){return Math.trunc(performance.now()*1e6)}function D(){return Date.now()*1e6}var L=E(()=>{"use strict"});function $e(){return we>0||qt}function ze(){return we>0}function qe(e){we>0?Jt.push(e):e()}function te(e,t,n){if(t.length===0)return;if(t.length===1){let d=n(t[0][0]);if(d<3||!$e()){e(t);return}(d>=5?We:d===4?Ke:Ve).push(()=>e(t));return}let r=t.length,s=r,i=r,a=r,o=0;for(;o<r&&n(t[o][0])<3;)o++;for(s=o;o<r&&n(t[o][0])===3;)o++;for(i=o;o<r&&n(t[o][0])===4;)o++;a=o;let c=$e();if(s>0){let d=t.slice(0,s);e(d)}if(i>s){let d=t.slice(s,i);c?Ve.push(()=>e(d)):e(d)}if(a>i){let d=t.slice(i,a);c?Ke.push(()=>e(d)):e(d)}if(r>a){let d=t.slice(a,r);c?We.push(()=>e(d)):e(d)}}var we,qt,Ve,Ke,We,Jt,Je=E(()=>{"use strict";we=0,qt=!1,Ve=[],Ke=[],We=[],Jt=[]});var J,R,P,I,U,B,Q,F,M,v,H,ve,Qt,xe,Yt,Xt,_e,Qe,Ye,Xe,Se,ne=E(()=>{"use strict";J=Symbol.for("graphrefly/START"),R=Symbol.for("graphrefly/DATA"),P=Symbol.for("graphrefly/DIRTY"),I=Symbol.for("graphrefly/RESOLVED"),U=Symbol.for("graphrefly/INVALIDATE"),B=Symbol.for("graphrefly/PAUSE"),Q=Symbol.for("graphrefly/RESUME"),F=Symbol.for("graphrefly/TEARDOWN"),M=Symbol.for("graphrefly/COMPLETE"),v=Symbol.for("graphrefly/ERROR"),H=Object.freeze([P]),ve=Object.freeze([I]),Qt=Object.freeze([U]),xe=Object.freeze([J]),Yt=Object.freeze([M]),Xt=Object.freeze([F]),_e=Object.freeze([H]),Qe=Object.freeze([ve]),Ye=Object.freeze([Qt]),Xe=Object.freeze([Yt]),Se=Object.freeze([Xt])});function Ze(e){e.registerCodec(Zt)}var Zt,et=E(()=>{"use strict";Zt={name:"json",version:1,contentType:"application/json",encode(e){let t=JSON.stringify(e);return new TextEncoder().encode(t)},decode(e,t){let n=new TextDecoder().decode(e);return JSON.parse(n)}}});function re(e){if(e==null)return en;let{type:t,id:n,...r}=e;return{type:t??"system",id:n??"",...r}}var en,tt=E(()=>{"use strict";en={type:"system",id:""}});function nt(e){e.registerMessageType(J,{tier:0,wireCrossing:!1}),e.registerMessageType(P,{tier:1,wireCrossing:!1}),e.registerMessageType(U,{tier:1,wireCrossing:!1,metaPassthrough:!1}),e.registerMessageType(B,{tier:2,wireCrossing:!1}),e.registerMessageType(Q,{tier:2,wireCrossing:!1}),e.registerMessageType(R,{tier:3,wireCrossing:!0}),e.registerMessageType(I,{tier:3,wireCrossing:!0}),e.registerMessageType(M,{tier:4,wireCrossing:!0,metaPassthrough:!1}),e.registerMessageType(v,{tier:4,wireCrossing:!0,metaPassthrough:!1}),e.registerMessageType(F,{tier:5,wireCrossing:!0,metaPassthrough:!1})}var oe,rt=E(()=>{"use strict";ne();oe=class{_messageTypes=new Map;_codecs=new Map;_onMessage;_onSubscribe;_defaultVersioning;_defaultHashFn;_inspectorEnabled=!(typeof process<"u"&&process.env?.NODE_ENV==="production");_globalInspector;_frozen=!1;tierOf;constructor(t){this._onMessage=t.onMessage,this._onSubscribe=t.onSubscribe,this._defaultVersioning=t.defaultVersioning,this._defaultHashFn=t.defaultHashFn,this.tierOf=n=>{let r=this._messageTypes.get(n);return r!=null?r.tier:1}}get onMessage(){return this._frozen=!0,this._onMessage}get onSubscribe(){return this._frozen=!0,this._onSubscribe}set onMessage(t){this._assertUnfrozen(),this._onMessage=t}set onSubscribe(t){this._assertUnfrozen(),this._onSubscribe=t}get defaultVersioning(){return this._defaultVersioning}set defaultVersioning(t){this._assertUnfrozen(),this._defaultVersioning=t}get defaultHashFn(){return this._defaultHashFn}set defaultHashFn(t){this._assertUnfrozen(),this._defaultHashFn=t}get inspectorEnabled(){return this._inspectorEnabled}set inspectorEnabled(t){this._inspectorEnabled=t}get globalInspector(){return this._globalInspector}set globalInspector(t){this._globalInspector=t}registerMessageType(t,n){return this._assertUnfrozen(),this._messageTypes.set(t,{tier:n.tier,wireCrossing:n.wireCrossing??n.tier>=3,metaPassthrough:n.metaPassthrough??!0}),this}messageTier(t){let n=this._messageTypes.get(t);return n!=null?n.tier:1}isWireCrossing(t){let n=this._messageTypes.get(t);return n!=null?n.wireCrossing:!0}isLocalOnly(t){return!this.isWireCrossing(t)}isMetaPassthrough(t){let n=this._messageTypes.get(t);return n!=null?n.metaPassthrough:!0}isKnownMessageType(t){return this._messageTypes.has(t)}registerCodec(t){return this._assertUnfrozen(),this._codecs.set(t.name,t),this}lookupCodec(t){return this._codecs.get(t)}_isFrozen(){return this._frozen}_assertUnfrozen(){if(this._frozen)throw new Error("GraphReFlyConfig is frozen: a node has already captured this config. Register custom types and set hooks before creating any node.")}}});var j,ot=E(()=>{"use strict";j=class extends Error{actor;action;nodeName;constructor(t,n){super(n??`GuardDenied: action "${String(t.action)}" denied for actor type "${String(t.actor.type)}"`),this.name="GuardDenied",this.actor=t.actor,this.action=t.action,this.nodeName=t.nodeName}get node(){return this.nodeName}}});function Ae(e){if(e===void 0)return null;if(typeof e=="number"){if(!Number.isFinite(e))throw new TypeError(`Cannot hash non-finite number: ${e}`);if(Number.isInteger(e)&&!Number.isSafeInteger(e))throw new TypeError(`Cannot hash integer outside safe range (|n| > 2^53-1): ${e}. Cross-language cid parity is not guaranteed for unsafe integers.`);return e}if(typeof e=="string"||typeof e=="boolean"||e===null)return e;if(Array.isArray(e))return e.map(Ae);if(typeof e=="object"&&e!==null){let t={};for(let n of Object.keys(e).sort())t[n]=Ae(e[n]);return t}return null}function rn(e){let t=nn.encode(e),n=t.length,r=n*8,s=n+9+63&-64,i=new Uint8Array(s);i.set(t),i[n]=128;let a=new DataView(i.buffer);a.setUint32(s-4,r>>>0,!1),a.setUint32(s-8,Math.floor(r/4294967296)>>>0,!1);let o=1779033703,c=3144134277,d=1013904242,l=2773480762,u=1359893119,p=2600822924,f=528734635,y=1541459225,h=new Uint32Array(64),m=(_,S)=>_>>>S|_<<32-S;for(let _=0;_<s;_+=64){for(let A=0;A<16;A++)h[A]=a.getUint32(_+A*4,!1);for(let A=16;A<64;A++){let W=h[A-15],$=h[A-2],Z=m(W,7)^m(W,18)^W>>>3,Te=m($,17)^m($,19)^$>>>10;h[A]=h[A-16]+Z+h[A-7]+Te>>>0}let S=o,N=c,k=d,b=l,T=u,x=p,C=f,ke=y;for(let A=0;A<64;A++){let W=m(T,6)^m(T,11)^m(T,25),$=T&x^~T&C,Z=ke+W+$+tn[A]+h[A]>>>0,Te=m(S,2)^m(S,13)^m(S,22),Ft=S&N^S&k^N&k,Dt=Te+Ft>>>0;ke=C,C=x,x=T,T=b+Z>>>0,b=k,k=N,N=S,S=Z+Dt>>>0}o=o+S>>>0,c=c+N>>>0,d=d+k>>>0,l=l+b>>>0,u=u+T>>>0,p=p+x>>>0,f=f+C>>>0,y=y+ke>>>0}let g=_=>_.toString(16).padStart(8,"0");return g(o)+g(c)+g(d)+g(l)+g(u)+g(p)+g(f)+g(y)}function Ee(e){let t=Ae(e??null),n=JSON.stringify(t);return rn(n).slice(0,16)}function on(){let e=globalThis.crypto;if(e?.randomUUID)return e.randomUUID();let t=()=>Math.floor(Math.random()*4294967296).toString(16).padStart(8,"0"),n=t()+t()+t()+t();return`${n.slice(0,8)}-${n.slice(8,12)}-4${n.slice(13,16)}-${(parseInt(n.slice(16,17),16)&3|8).toString(16)}${n.slice(17,20)}-${n.slice(20,32)}`}function Re(e,t,n){let r=n?.id??on();if(e===0)return{id:r,version:0};let i=(n?.hash??Ee)(t);return{id:r,version:0,cid:i,prev:null}}function st(e,t,n){e.version+=1,"cid"in e&&(e.prev=e.cid,e.cid=n(t))}var tn,nn,it=E(()=>{"use strict";tn=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),nn=new TextEncoder});function dt(e){return{node:e,unsub:null,prevData:void 0,dirty:!1,involvedThisWave:!1,dataBatch:[],terminal:void 0}}function Me(e){e.prevData=void 0,e.dirty=!1,e.involvedThisWave=!1,e.dataBatch.length=0,e.terminal=void 0}function se(e){return e.length===0?e:typeof e[0]=="symbol"?[e]:e}function ut(e,t,n){let r=lt(e)?e:[],s=typeof e=="function"?e:typeof t=="function"?t:void 0,i={};return lt(e)?i=(Ne(t)?t:n)??{}:Ne(e)?i=e:i=(Ne(t)?t:n)??{},new ie(r,s,i)}var at,ct,sn,an,Ce,ie,lt,Ne,pt=E(()=>{"use strict";et();tt();Je();L();rt();ot();ne();it();at=()=>{},ct=100;sn=(e,t,n,r)=>{n.direction==="down-in"&&e._onDepMessage(n.depIndex,t)},an=(e,t,n,r)=>{let s=e;if(s._status==="completed"||s._status==="errored")return;let i=s._cached,a=i===void 0?[xe]:[xe,[R,i]];s._status==="dirty"&&a.push(H),te(t,a,s._config.tierOf)},Ce=new oe({onMessage:sn,onSubscribe:an});nt(Ce);Ze(Ce);ie=class e{_optsName;_describeKind;meta;_hasMeta;_config;_deps;_sinks=null;_sinkCount=0;_cached;_status;_cleanup;_store={};_waveHasNewData=!1;_hasNewTerminal=!1;_hasCalledFnOnce=!1;_paused=!1;_pendingWave=!1;_isExecutingFn=!1;_pendingRerun=!1;_rerunDepth=0;_dirtyDepCount=0;_batchPendingMessages=null;_pauseLocks=null;_pauseBuffer=null;_fn;_equals;_resubscribable;_resetOnTeardown;_autoComplete;_autoError;_pausable;_partial;_guard;_extraGuards;_hashFn;_versioning;_versioningLevel;_lastMutation;_inspectorHooks;_actions;constructor(t,n,r){this._config=r.config??Ce,this._config.onMessage,this._optsName=r.name,this._describeKind=r.describeKind,this._equals=r.equals??Object.is,this._resubscribable=r.resubscribable??!1,this._resetOnTeardown=r.resetOnTeardown??!1,this._autoComplete=r.completeWhenDepsComplete??!0,this._autoError=r.errorWhenDepsError??!0,this._pausable=r.pausable??!0,this._guard=r.guard,this._fn=n,this._partial=r.partial??!1,this._cached=r.initial!==void 0?r.initial:void 0,this._status=t.length===0&&n==null&&this._cached!==void 0?"settled":"sentinel",this._hashFn=r.versioningHash??this._config.defaultHashFn??Ee;let s=r.versioning??this._config.defaultVersioning;this._versioningLevel=s,this._versioning=s!=null?Re(s,this._cached===void 0?void 0:this._cached,{id:r.versioningId,hash:this._hashFn}):void 0,this._deps=t.map(dt);let i={};for(let[o,c]of Object.entries(r.meta??{})){let d={initial:c,name:`${r.name??"node"}:meta:${o}`,describeKind:"state",config:this._config};r.guard!=null&&(d.guard=r.guard),i[o]=new e([],void 0,d)}Object.freeze(i),this.meta=i,this._hasMeta=Object.keys(i).length>0;let a=this;this._actions={emit(o){a._emit([[R,o]])},down(o){a._emit(se(o))},up(o){a._emitUp(se(o))}},this.down=this.down.bind(this),this.up=this.up.bind(this)}get _isTerminal(){return this._status==="completed"||this._status==="errored"}get name(){return this._optsName}get status(){return this._status}get cache(){return this._cached===void 0?void 0:this._cached}get lastMutation(){return this._lastMutation}get v(){return this._versioning}hasGuard(){return this._guard!=null}_applyVersioning(t,n){if(this._isExecutingFn)throw new Error(`Node "${this.name}": _applyVersioning cannot run mid-fn \u2014 call it outside of \`_execFn\` (typically at graph setup time before the first subscribe).`);let r=this._versioningLevel;if(r!=null&&t<=r)return;let s=n?.hash??this._hashFn;s!==this._hashFn&&(this._hashFn=s);let i=this._cached===void 0?void 0:this._cached,a=this._versioning,o=a?.id??n?.id,c=a?.version??0,d=Re(t,i,{id:o,hash:s});d.version=c,this._versioning=d,this._versioningLevel=t}_setInspectorHook(t){return t==null?()=>{}:(this._inspectorHooks==null&&(this._inspectorHooks=new Set),this._inspectorHooks.add(t),()=>{this._inspectorHooks?.delete(t),this._inspectorHooks?.size===0&&(this._inspectorHooks=void 0)})}_pushGuard(t){return this._extraGuards==null&&(this._extraGuards=new Set),this._extraGuards.add(t),()=>{this._extraGuards?.delete(t),this._extraGuards?.size===0&&(this._extraGuards=void 0)}}allowsObserve(t){if(this._guard==null&&this._extraGuards==null)return!0;let n=re(t);if(this._guard!=null&&!this._guard(n,"observe"))return!1;if(this._extraGuards!=null){for(let r of this._extraGuards)if(!r(n,"observe"))return!1}return!0}_checkGuard(t){if(t?.internal)return;let n=this._guard!=null||this._extraGuards!=null,r=t?.actor!=null;if(!n&&!r)return;let s=re(t?.actor),i=t?.delivery==="signal"?"signal":"write";if(this._guard!=null&&!this._guard(s,i))throw new j({actor:s,action:i,nodeName:this.name});if(this._extraGuards!=null){for(let a of this._extraGuards)if(!a(s,i))throw new j({actor:s,action:i,nodeName:this.name})}this._lastMutation={actor:s,timestamp_ns:D()}}down(t,n){let r=se(t);r.length!==0&&(this._checkGuard(n),this._emit(r))}emit(t,n){this._checkGuard(n),this._emit([[R,t]])}up(t,n){if(this._deps.length===0)return;let r=se(t);if(r.length===0)return;this._checkGuard(n);let s=n??{internal:!0};this._validateUpTiers(r);for(let i of this._deps)i.node.up?.(r,s)}_emitUp(t){if(this._deps.length!==0&&t.length!==0){this._validateUpTiers(t);for(let n of this._deps)n.node.up?.(t,{internal:!0})}}_validateUpTiers(t){let n=this._config.tierOf;for(let r of t){let s=n(r[0]);if(s===3||s===4)throw new Error(`Node "${this.name}": tier-${s} messages cannot flow up \u2014 DATA/RESOLVED/COMPLETE/ERROR are downstream-only. Use \`down(...)\` for value delivery; \`up(...)\` is for control signals (DIRTY, INVALIDATE, PAUSE, RESUME, TEARDOWN).`)}}subscribe(t,n){if(n!=null&&this._guard!=null){let c=re(n);if(!this._guard(c,"observe"))throw new j({actor:c,action:"observe",nodeName:this.name})}let s=this._isTerminal&&this._resubscribable;if(s){this._cached=void 0,this._status="sentinel",this._store={},this._hasCalledFnOnce=!1,this._waveHasNewData=!1,this._hasNewTerminal=!1,this._paused=!1,this._pendingWave=!1,this._pendingRerun=!1,this._isExecutingFn=!1,this._rerunDepth=0,this._dirtyDepCount=0,this._pauseLocks=null,this._pauseBuffer=null;for(let c of this._deps)Me(c);if(this._partial===!1){for(let c of this._deps)if(c.prevData!==void 0||c.dataBatch.length!==0||c.terminal!==void 0||c.dirty)throw new Error(`resubscribable-reset invariant: DepRecord not fully reset for node ${this._optsName??"(anonymous)"}`)}}this._sinkCount+=1;let i;try{i=this._config.onSubscribe(this,t,{sinkCount:this._sinkCount,afterTerminalReset:s},this._actions)}catch(c){throw this._sinkCount-=1,c}this._sinks==null?this._sinks=t:typeof this._sinks=="function"?this._sinks=new Set([this._sinks,t]):this._sinks.add(t);let a=this._isTerminal;if(this._sinkCount===1&&!a)try{this._activate()}catch(c){if(this._sinkCount-=1,this._removeSink(t),this._sinkCount===0&&(this._status="sentinel"),typeof i=="function")try{i()}catch{}throw c}this._status==="sentinel"&&this._cached===void 0&&(this._status="pending");let o=!1;return()=>{o||(o=!0,this._sinkCount-=1,this._removeSink(t),typeof i=="function"&&i(),this._sinks==null&&this._deactivate())}}_removeSink(t){if(this._sinks===t)this._sinks=null;else if(this._sinks!=null&&typeof this._sinks!="function")if(this._sinks.delete(t),this._sinks.size===1){let[n]=this._sinks;this._sinks=n}else this._sinks.size===0&&(this._sinks=null)}_activate(){if(this._deps.length===0){this._fn&&this._execFn();return}this._dirtyDepCount=0;let t=this._deps.length,n=0;try{for(let r=0;r<t;r++){let s=r,i=this._deps[r];i.unsub=at,i.unsub=i.node.subscribe(a=>{if(i.unsub===null)return;let o=this._config.tierOf,c=!1;for(let d of a)o(d[0])>=3&&(c=!0),this._config.onMessage(this,d,{direction:"down-in",depIndex:s},this._actions);c&&this._maybeRunFnOnSettlement()}),n++}}catch(r){this._deps[n].unsub=null;for(let s=0;s<n;s++){let i=this._deps[s];if(i.unsub!=null){let a=i.unsub;i.unsub=null;try{a()}catch{}Me(i)}}throw this._dirtyDepCount=0,r}}_addDep(t){for(let s=0;s<this._deps.length;s++)if(this._deps[s].node===t)return s;let n=this._deps.length,r=dt(t);if(this._deps.push(r),this._sinks==null)return n;r.dirty=!0,this._dirtyDepCount++,this._status!=="dirty"&&this._emit(_e),r.unsub=at;try{r.unsub=t.subscribe(s=>{if(r.unsub===null)return;let i=this._config.tierOf,a=!1;for(let o of s)i(o[0])>=3&&(a=!0),this._config.onMessage(this,o,{direction:"down-in",depIndex:n},this._actions);a&&this._maybeRunFnOnSettlement()})}catch(s){throw r.unsub=null,this._deps.pop(),this._dirtyDepCount--,s}return n}_deactivate(t=!1){let n=this._cleanup;if(this._cleanup=void 0,typeof n=="function")try{n()}catch(r){this._emit([[v,this._wrapFnError("cleanup threw",r)]])}else if(n!=null&&typeof n=="object"){let r=n.deactivate;if(typeof r=="function")try{r()}catch(s){this._emit([[v,this._wrapFnError("cleanup.deactivate threw",s)]])}}for(let r of this._deps){if(r.unsub!=null){let s=r.unsub;r.unsub=null;try{s()}catch{}}Me(r)}this._waveHasNewData=!1,this._hasNewTerminal=!1,this._hasCalledFnOnce=!1,this._paused=!1,this._pendingWave=!1,this._pendingRerun=!1,this._rerunDepth=0,this._store={},this._dirtyDepCount=0,this._pauseLocks=null,this._pauseBuffer=null,this._fn!=null&&(this._cached=void 0),t||(this._fn!=null||this._deps.length>0)&&(!this._isTerminal||this._resubscribable)&&(this._status="sentinel")}_onDepMessage(t,n){let r=this._deps[t],s=n[0];if(this._inspectorHooks!=null){let i={kind:"dep_message",depIndex:t,message:n};for(let a of this._inspectorHooks)a(i)}if(s!==J){if(s===P){this._depDirtied(r);return}if(s===U){if(this._depInvalidated(r),this._cached===void 0)return;this._emit(Ye);return}if(s===B||s===Q){this._emit([n]);return}if(s===F){this._emit(Se);return}if(s===R)this._depSettledAsData(r,n[1]);else if(s===I)this._depSettledAsResolved(r);else if(s===M)this._depSettledAsTerminal(r,!0);else if(s===v)this._depSettledAsTerminal(r,n[1]);else{this._emit([n]);return}if(!this._fn){(s===R||s===I)&&this._emit([n]),(s===M||s===v)&&this._maybeAutoTerminalAfterWave();return}}}_depDirtied(t){t.dirty||(t.dirty=!0,t.involvedThisWave=!0,this._dirtyDepCount++,this._status!=="dirty"&&this._emit(_e))}_depSettledAsData(t,n){t.dirty&&(t.dirty=!1,this._dirtyDepCount--),t.involvedThisWave=!0,t.dataBatch.push(n),this._waveHasNewData=!0}_depSettledAsResolved(t){t.dirty&&(t.dirty=!1,this._dirtyDepCount--)}_depSettledAsTerminal(t,n){t.dirty&&(t.dirty=!1,this._dirtyDepCount--),t.terminal=n,t.involvedThisWave=!0,this._hasNewTerminal=!0}_depInvalidated(t){t.prevData=void 0,t.terminal=void 0,t.dataBatch.length=0,t.dirty?t.involvedThisWave=!1:(t.dirty=!0,t.involvedThisWave=!0,this._dirtyDepCount++)}_maybeRunFnOnSettlement(){if(!(this._isTerminal&&!this._resubscribable)&&!(this._dirtyDepCount>0)){if(!this._partial&&!this._hasCalledFnOnce)for(let t=0;t<this._deps.length;t++){let n=this._deps[t];if(n.dataBatch.length===0&&n.prevData===void 0&&n.terminal===void 0){this._maybeAutoTerminalAfterWave();return}}if(this._paused){this._pendingWave=!0;return}if(!this._waveHasNewData&&!this._hasNewTerminal&&this._hasCalledFnOnce){this._clearWaveFlags(),this._emit(Qe),this._maybeAutoTerminalAfterWave();return}this._fn&&this._execFn(),this._maybeAutoTerminalAfterWave()}}_maybeAutoTerminalAfterWave(){if(this._deps.length===0||this._isTerminal)return;let t=this._deps.find(n=>n.terminal!==void 0&&n.terminal!==!0);if(t!=null){this._autoError&&this._emit([[v,t.terminal]]);return}this._autoComplete&&this._deps.every(n=>n.terminal!==void 0)&&this._emit(Xe)}_execFn(){if(!this._fn||this._isTerminal&&!this._resubscribable)return;if(this._isExecutingFn){this._pendingRerun=!0;return}let t=this._cleanup;if(typeof t=="function"){this._cleanup=void 0;try{t()}catch(a){this._emit([[v,this._wrapFnError("cleanup threw",a)]]);return}}else if(t!=null&&typeof t=="object"){let a=t.beforeRun;if(typeof a=="function"){t.beforeRun=void 0;try{a()}catch(o){this._emit([[v,this._wrapFnError("cleanup.beforeRun threw",o)]]);return}}}let n=this._deps.map(a=>a.involvedThisWave?a.dataBatch.length>0?[...a.dataBatch]:[]:void 0),r=this._deps.map(a=>a.prevData);for(let a=0;a<this._deps.length;a++){let o=n[a];o!=null&&o.length>0&&(this._deps[a].prevData=o[o.length-1])}let s=this._deps.map(a=>a.terminal),i={prevData:r,terminalDeps:s,store:this._store};if(this._hasCalledFnOnce=!0,this._clearWaveFlags(),this._inspectorHooks!=null){let a={kind:"run",batchData:n,prevData:r};for(let o of this._inspectorHooks)o(a)}this._isExecutingFn=!0;try{let a=this._fn(n,this._actions,i);if(typeof a=="function")this._cleanup=a;else if(a!=null&&typeof a=="object"){let o=a;(typeof o.beforeRun=="function"||typeof o.deactivate=="function"||typeof o.invalidate=="function")&&(this._cleanup=a)}}catch(a){this._emit([[v,this._wrapFnError("fn threw",a)]])}finally{this._isExecutingFn=!1,this._pendingRerun?(this._pendingRerun=!1,this._rerunDepth+=1,this._rerunDepth>ct?(this._rerunDepth=0,this._emit([[v,new Error(`Node "${this.name}": _pendingRerun depth exceeded ${ct} \u2014 likely a reactive cycle`)]])):this._maybeRunFnOnSettlement()):this._rerunDepth=0,this._clearWaveFlags()}}_clearWaveFlags(){this._waveHasNewData=!1,this._hasNewTerminal=!1;for(let t of this._deps)t.involvedThisWave=!1,t.dataBatch.length=0}_wrapFnError(t,n){let r=n instanceof Error?n.message:String(n);return new Error(`Node "${this.name}": ${t}: ${r}`,{cause:n})}_frameBatch(t){let n=this._config.tierOf;if(t.length===1)return n(t[0][0])===3&&this._status!=="dirty"?[H,t[0]]:t;let r=!0,s=!1,i=!1,a=-1;for(let c of t){let d=n(c[0]);d<a&&(r=!1),d===3&&(s=!0),c[0]===P&&(i=!0),a=d}let o=t;if(!r){let c=t.map((d,l)=>({m:d,i:l,tier:n(d[0])}));c.sort((d,l)=>d.tier-l.tier||d.i-l.i),o=c.map(d=>d.m)}if(s&&!i&&this._status!=="dirty"){let c=0;for(;c<o.length&&n(o[c][0])===0;)c++;return c===0?[H,...o]:[...o.slice(0,c),H,...o.slice(c)]}return o}_emit(t){if(t.length===0)return;for(let o=0;o<t.length;o++){let c=t[o];if(c[0]===v&&c[1]===void 0)throw new TypeError('[ERROR, payload] requires a non-undefined payload (spec \xA71.2). Pass an Error object or domain tag instead \u2014 e.g. node.down([[ERROR, new Error("reason")]])')}let n=t;if(this._isTerminal&&!this._resubscribable){let o=t.filter(c=>c[0]===F||c[0]===U);if(o.length===0)return;n=o}n=this._frameBatch(n);let s=null;for(let o=0;o<n.length;o++){let c=n[o],d=c[0];if(d!==B&&d!==Q){s?.push(c);continue}if(c.length<2)throw new Error(`Node "${this.name}": [[${d===B?"PAUSE":"RESUME"}]] must carry a lockId payload \u2014 bare PAUSE/RESUME is a protocol violation (C0 rule). Use \`[[PAUSE, lockId]]\` / \`[[RESUME, lockId]]\`.`);let l=!0;if(this._pausable!==!1){let u=c[1];if(d===B)this._pauseLocks==null&&(this._pauseLocks=new Set),this._pauseLocks.add(u),this._paused=!0,this._pausable==="resumeAll"&&this._pauseBuffer==null&&(this._pauseBuffer=[]);else if(this._pauseLocks==null||!this._pauseLocks.has(u))l=!1;else if(this._pauseLocks.delete(u),this._pauseLocks.size===0){if(this._paused=!1,this._pauseBuffer!=null&&this._pauseBuffer.length>0){let p=this._pauseBuffer;this._pauseBuffer=[],this._emit(p)}this._pendingWave&&(this._pendingWave=!1,this._maybeRunFnOnSettlement())}}l?s?.push(c):s==null&&(s=n.slice(0,o))}if(s!=null){if(s.length===0)return;n=s}if(this._hasMeta&&n.some(o=>o[0]===F))for(let o of Object.keys(this.meta))try{this.meta[o]._emit(Se)}catch{}let{finalMessages:i,equalsError:a}=this._updateState(n);if(i.length>0&&this._config.inspectorEnabled){let o=this._config.globalInspector;if(o!=null)try{o({kind:"emit",node:this,messages:i})}catch{}}if(i.length>0)if(this._paused&&this._pausable==="resumeAll"&&this._pauseBuffer!=null){let o=this._config.tierOf,c=[];for(let d of i)o(d[0])===3?this._pauseBuffer.push(d):c.push(d);c.length>0&&this._dispatchOrAccumulate(c)}else this._dispatchOrAccumulate(i);a!=null&&this._emit([[v,a]])}_updateState(t){let n=this._config.tierOf,r,s,i=-1,a=0;for(let l of t)n(l[0])===3&&a++;let o=a<=1,c=-1;if(this._versioning!=null&&a>1){for(let l=t.length-1;l>=0;l--)if(t[l][0]===R){c=l;break}}for(let l=0;l<t.length;l++){let u=t[l],p=u[0];if(p===R){if(u.length>=2){let f=!1;if(o&&this._cached!==void 0)try{f=this._equals(this._cached,u[1])}catch(y){s=this._wrapFnError("equals threw",y),i=l;break}if(f){r==null&&(r=t.slice(0,l)),r.push(ve),this._status="resolved";continue}this._cached=u[1],this._versioning!=null&&(c<0||l===c)&&st(this._versioning,u[1],this._hashFn)}this._status="settled",r?.push(u)}else if(r?.push(u),p===P)this._status="dirty";else if(p===I)this._status="resolved";else if(p===M)this._status="completed";else if(p===v)this._status="errored";else if(p===U){this._cached=void 0,this._status="dirty";let f=this._cleanup;if(typeof f=="function"){this._cleanup=void 0;try{f()}catch{}}else if(f!=null&&typeof f=="object"){let y=f.invalidate;if(typeof y=="function")try{y()}catch{}}}else p===F&&(this._resetOnTeardown&&(this._cached=void 0),this._deactivate(!0),this._status="sentinel")}let d=i>=0?r??t.slice(0,i):r??t;return s!=null?{finalMessages:d,equalsError:s}:{finalMessages:d}}_deliverToSinks=t=>{if(this._sinks==null)return;if(typeof this._sinks=="function"){this._sinks(t);return}let n=[...this._sinks];for(let r of n)r(t)};_dispatchOrAccumulate(t){if(ze()){this._batchPendingMessages===null&&(this._batchPendingMessages=[],qe(()=>this._flushBatchPending()));for(let n of t)this._batchPendingMessages.push(n);return}te(this._deliverToSinks,t,this._config.tierOf)}_flushBatchPending(){let t=this._batchPendingMessages;if(t===null||(this._batchPendingMessages=null,t.length===0))return;let n=this._frameBatch(t);te(this._deliverToSinks,n,this._config.tierOf)}},lt=e=>Array.isArray(e),Ne=e=>typeof e=="object"&&e!=null&&!Array.isArray(e)});function ae(e,t){return ut((r,s,i)=>e(s,i)??void 0,{describeKind:"producer",...t})}var ft=E(()=>{"use strict";pt()});function Le(e){return{describeKind:"producer",...e}}function mt(e,t){return ae(n=>{let r=!1;try{for(let s of e){if(r)return;n.emit(s)}r||n.down([[M]])}catch(s){r||n.down([[v,s]])}return()=>{r=!0}},Le(t))}function cn(e){return e!=null&&typeof e.then=="function"}function dn(e,t){let{signal:n,...r}=t??{};return ae(s=>{let i=!1,a=()=>{i||(i=!0,s.down([[v,n.reason]]))};if(n?.aborted){a();return}return n?.addEventListener("abort",a,{once:!0}),Promise.resolve(e).then(o=>{i||(i=!0,n?.removeEventListener("abort",a),s.emit(o),s.down([[M]]))},o=>{i||(i=!0,n?.removeEventListener("abort",a),s.down([[v,o]]))}),()=>{i=!0,n?.removeEventListener("abort",a)}},Le(r))}function ln(e,t){let{signal:n,...r}=t??{};return ae(s=>{let i=new AbortController,a=()=>i.abort(n?.reason);n?.aborted?i.abort(n.reason):n?.addEventListener("abort",a,{once:!0});let o=n??i.signal,c=!1,d=e[Symbol.asyncIterator](),l=()=>{c||o.aborted||Promise.resolve(d.next()).then(u=>{if(!(c||o.aborted)){if(u.done){s.down([[M]]);return}s.emit(u.value),l()}},u=>{!c&&!o.aborted&&s.down([[v,u]])})};return l(),()=>{c=!0,n?.removeEventListener("abort",a),i.abort(),Promise.resolve(d.return?.()).catch(()=>{})}},Le(r))}function un(e){return e!=null&&typeof e=="object"&&"cache"in e&&typeof e.subscribe=="function"}function Y(e,t){if(un(e))return e;if(cn(e))return dn(e,t);if(e!=null){let n=e;if(typeof n[Symbol.asyncIterator]=="function")return ln(e,t);if(typeof n[Symbol.iterator]=="function")return mt(e,t)}return pn(e)}function pn(...e){return mt(e,void 0)}function G(e){return new Promise((t,n)=>{let r=!1,s=!1,i;i=e.subscribe(a=>{for(let o of a){if(r)return;if(o[0]===R){r=!0,t(o[1]),i?(i(),i=void 0):s=!0;return}if(o[0]===v){r=!0,n(o[1]),i?(i(),i=void 0):s=!0;return}if(o[0]===M){r=!0,n(new Error("completed without DATA")),i?(i(),i=void 0):s=!0;return}}}),s&&(i?.(),i=void 0)})}var ce=E(()=>{"use strict";ne();ft()});var V,Oe=E(()=>{"use strict";V=class{_timer;_gen=0;start(t,n){this.cancel(),this._gen+=1;let r=this._gen;this._timer=setTimeout(()=>{this._timer=void 0,r===this._gen&&n()},t)}cancel(){this._timer!==void 0&&(clearTimeout(this._timer),this._timer=void 0)}get pending(){return this._timer!==void 0}}});function fn(e){return e<0?0:e}function gt(e){let t=Math.max(1,e?.failureThreshold??5),n=fn(e?.cooldownNs??30*1e9),r=e?.cooldown??null,s=Math.max(1,e?.halfOpenMax??1),i=e?.now??w,a="closed",o=0,c=0,d=0,l=n,u=0;function p(){if(!r)return n;let h=r(c);return h!==null?h:n}function f(){a="open",l=p(),d=i(),u=0}return{canExecute(){return a==="closed"?!0:a==="open"?i()-d>=l?(a="half-open",u=1,!0):!1:u<s?(u++,!0):!1},recordSuccess(){a==="half-open"?(a="closed",o=0,c=0):a==="closed"&&(o=0)},recordFailure(h){if(a==="half-open"){c++,f();return}a==="closed"&&(o++,o>=t&&f())},get state(){return a},get failureCount(){return o},reset(){a="closed",o=0,c=0,u=0}}}var ht=E(()=>{"use strict";L()});var Fn={};Vt(Fn,{chromeNanoAdapter:()=>z,cloudFirstPreset:()=>On,localFirstPreset:()=>Pn,offlinePreset:()=>In,webllmAdapter:()=>q});module.exports=Wt(Fn);L();function Ge(){let e=new Error("aborted");return e.name="AbortError",e}function z(e={}){let t=e.streamMode??"accumulated",n=e.navigatorOverride??globalThis.navigator,r=()=>{let o=n?.ai;if(!o?.languageModel)throw new Error("chromeNanoAdapter: Chrome AI languageModel not available (requires Chrome 131+ with flag/OT).");return o},s=async o=>r().languageModel.create({systemPrompt:o?.systemPrompt??e.systemPrompt,temperature:o?.temperature??e.temperature,topK:e.topK,signal:o?.signal}),i=o=>{let c=[];for(let d of o)d.role!=="system"&&c.push(`${d.role}: ${d.content}`);return c.join(`
2
2
 
3
- `)},s=()=>({input:{regular:0},output:{regular:0}});return{provider:"chrome-nano",model:"chrome-nano",async invoke(o,c){let u=await i(c);try{let l=a(o),d=h(),p=await u.prompt(l,{signal:c?.signal}),m=Math.max(0,(h()-d)/1e6);return{content:p,usage:s(),finishReason:"stop",latencyMs:m,model:"chrome-nano",provider:"chrome-nano"}}finally{u.destroy?.()}},async*stream(o,c){let u=await i(c);try{let l=a(o);if(t==="delta")for await(let d of u.promptStreaming(l,{signal:c?.signal})){if(c?.signal?.aborted)throw ne();d&&(yield{type:"token",delta:d})}else{let d="";for await(let p of u.promptStreaming(l,{signal:c?.signal})){if(c?.signal?.aborted)throw ne();let m=p.startsWith(d)?p.slice(d.length):p;d=p,m&&(yield{type:"token",delta:m})}}yield{type:"usage",usage:s()},yield{type:"finish",reason:"stop"}}finally{u.destroy?.()}}}}A();function $e(){let e=new Error("aborted");return e.name="AbortError",e}function S(e){let t=e.engine,r=async()=>{if(t)return t;if(!We(e.navigatorOverride))throw new Error("webllmAdapter: WebGPU not available in this environment");let s=(await import("@mlc-ai/web-llm").catch(()=>{throw new Error("webllmAdapter: @mlc-ai/web-llm not installed. Add it as a peer dependency or pass opts.engine.")})).CreateMLCEngine;if(!s)throw new Error("webllmAdapter: @mlc-ai/web-llm missing CreateMLCEngine export");return t=await s(e.model,{initProgressCallback:e.initProgressCallback}),t},n=(a,s)=>{let o=[];s?.systemPrompt&&o.push({role:"system",content:s.systemPrompt});for(let c of a)o.push({role:c.role==="tool"?"user":c.role,content:c.content});return o},i=a=>({input:{regular:a?.prompt_tokens??0},output:{regular:a?.completion_tokens??0},raw:a});return{provider:"webllm",model:e.model,async invoke(a,s){let o=await r(),c=h(),u=await o.chat.completions.create({model:s?.model??e.model,messages:n(a,s),max_tokens:s?.maxTokens,temperature:s?.temperature},{signal:s?.signal}),l=Math.max(0,(h()-c)/1e6),d=u.choices?.[0];return{content:d?.message?.content??"",usage:i(u.usage),finishReason:d?.finish_reason,latencyMs:l,model:e.model,provider:"webllm"}},async*stream(a,s){let c=await(await r()).chat.completions.create({model:s?.model??e.model,messages:n(a,s),max_tokens:s?.maxTokens,temperature:s?.temperature,stream:!0},{signal:s?.signal}),u,l;for await(let d of c){if(s?.signal?.aborted)throw $e();let p=d.choices?.[0];p?.delta?.content&&(yield{type:"token",delta:p.delta.content}),p?.finish_reason&&(l=p.finish_reason),d.usage&&(u=d.usage)}u&&(yield{type:"usage",usage:i(u)}),yield{type:"finish",reason:l??"stop"}}}}function We(e){let t=e??globalThis.navigator;return!!(t&&"gpu"in t&&t.gpu)}A();function ae(e={}){return e.sdk?Ye(e):He(e)}function U(e,t,r,n){let i=t?.model??r;if(!i)throw new Error("anthropicAdapter: model must be set via options.model or invokeOpts.model");let{system:a,chat:s}=Je(e,t?.systemPrompt),o={model:i,messages:s.map(qe),max_tokens:t?.maxTokens??4096};return a&&(o.system=a),t?.temperature!=null&&(o.temperature=t.temperature),t?.tools&&t.tools.length>0&&(o.tools=t.tools.map(Ve)),t?.maxReasoningTokens!=null&&(o.thinking={type:"enabled",budget_tokens:t.maxReasoningTokens}),t?.cacheHint,n&&(o.stream=!0),t?.providerExtras&&Object.assign(o,t.providerExtras),o}function Je(e,t){let r=[];t&&r.push(t);let n=[];for(let i of e)i.role==="system"?r.push(i.content):n.push(i);return{system:r.length>0?r.join(`
3
+ `)},a=()=>({input:{regular:0},output:{regular:0}});return{provider:"chrome-nano",model:"chrome-nano",async invoke(o,c){let d=await s(c);try{let l=i(o),u=w(),p=await d.prompt(l,{signal:c?.signal}),f=Math.max(0,(w()-u)/1e6);return{content:p,usage:a(),finishReason:"stop",latencyMs:f,model:"chrome-nano",provider:"chrome-nano"}}finally{d.destroy?.()}},async*stream(o,c){let d=await s(c);try{let l=i(o);if(t==="delta")for await(let u of d.promptStreaming(l,{signal:c?.signal})){if(c?.signal?.aborted)throw Ge();u&&(yield{type:"token",delta:u})}else{let u="";for await(let p of d.promptStreaming(l,{signal:c?.signal})){if(c?.signal?.aborted)throw Ge();let f=p.startsWith(u)?p.slice(u.length):p;u=p,f&&(yield{type:"token",delta:f})}}yield{type:"usage",usage:a()},yield{type:"finish",reason:"stop"}}finally{d.destroy?.()}}}}L();function $t(){let e=new Error("aborted");return e.name="AbortError",e}function q(e){let t=e.engine,n=async()=>{if(t)return t;if(!zt(e.navigatorOverride))throw new Error("webllmAdapter: WebGPU not available in this environment");let a=(await import("@mlc-ai/web-llm").catch(()=>{throw new Error("webllmAdapter: @mlc-ai/web-llm not installed. Add it as a peer dependency or pass opts.engine.")})).CreateMLCEngine;if(!a)throw new Error("webllmAdapter: @mlc-ai/web-llm missing CreateMLCEngine export");return t=await a(e.model,{initProgressCallback:e.initProgressCallback}),t},r=(i,a)=>{let o=[];a?.systemPrompt&&o.push({role:"system",content:a.systemPrompt});for(let c of i)o.push({role:c.role==="tool"?"user":c.role,content:c.content});return o},s=i=>({input:{regular:i?.prompt_tokens??0},output:{regular:i?.completion_tokens??0},raw:i});return{provider:"webllm",model:e.model,async invoke(i,a){let o=await n(),c=w(),d=await o.chat.completions.create({model:a?.model??e.model,messages:r(i,a),max_tokens:a?.maxTokens,temperature:a?.temperature},{signal:a?.signal}),l=Math.max(0,(w()-c)/1e6),u=d.choices?.[0];return{content:u?.message?.content??"",usage:s(d.usage),finishReason:u?.finish_reason,latencyMs:l,model:e.model,provider:"webllm"}},async*stream(i,a){let c=await(await n()).chat.completions.create({model:a?.model??e.model,messages:r(i,a),max_tokens:a?.maxTokens,temperature:a?.temperature,stream:!0},{signal:a?.signal}),d,l;for await(let u of c){if(a?.signal?.aborted)throw $t();let p=u.choices?.[0];p?.delta?.content&&(yield{type:"token",delta:p.delta.content}),p?.finish_reason&&(l=p.finish_reason),u.usage&&(d=u.usage)}d&&(yield{type:"usage",usage:s(d)}),yield{type:"finish",reason:l??"stop"}}}}function zt(e){let t=e??globalThis.navigator;return!!(t&&"gpu"in t&&t.gpu)}L();async function*K(e,t){let n=t?.parse??(k=>k),r=t?.signal,s=new TextDecoder,i="",a="message",o=[],c,d,l=[],u=()=>{if(o.length===0&&a==="message"&&c===void 0){o=[];return}let k=o.join(`
4
+ `);l.push({event:a,data:n(k),id:c,retry:d}),a="message",o=[],c=void 0,d=void 0},p=k=>{if(k===""){u();return}if(k.startsWith(":"))return;let b=k.indexOf(":"),T=b<0?k:k.slice(0,b),x=b<0?"":k.slice(b+1);switch(x.startsWith(" ")&&(x=x.slice(1)),T){case"event":a=x;break;case"data":o.push(x);break;case"id":x.includes("\0")||(c=x);break;case"retry":{let C=Number(x);Number.isFinite(C)&&(d=C);break}}},f=(k,b)=>{i+=s.decode(k,{stream:!b});let T=i.split(/\r?\n/);i=T.pop()??"";for(let x of T)p(x)},y=e,h=e instanceof ReadableStream?e:y&&typeof y=="object"&&y.body instanceof ReadableStream?y.body:null,m,g,_=!1,S=()=>{_||(_=!0,m&&m.cancel().catch(()=>{}),g&&typeof g.return=="function"&&Promise.resolve(g.return()).catch(()=>{}))},N=()=>{S()};if(r){if(r.aborted)return;r.addEventListener("abort",N,{once:!0})}try{if(h){for(m=h.getReader();!r?.aborted;){let{value:k,done:b}=await m.read();if(b)break;for(f(k,!1);l.length>0;)yield l.shift()}f(new Uint8Array,!0)}else{for(g=e[Symbol.asyncIterator]();!r?.aborted;){let b=await g.next();if(b.done)break;for(f(b.value,!1);l.length>0;)yield l.shift()}f(new Uint8Array,!0)}if(i.trim()){for(let k of i.split(/\r?\n/))p(k);u()}for(;l.length>0;)yield l.shift()}finally{r&&r.removeEventListener("abort",N),S()}}async function O(e,t){let n;try{n=await e.text()}catch{n=""}let r=t??"HTTP",s=new Error(`${r} API ${e.status}: ${e.statusText}${n?` \u2014 ${n}`:""}`);return s.status=e.status,s.headers=e.headers,s}function yt(e={}){return e.sdk?bn(e):yn(e)}function de(e,t,n,r){let s=t?.model??n;if(!s)throw new Error("anthropicAdapter: model must be set via options.model or invokeOpts.model");let{system:i,chat:a}=mn(e,t?.systemPrompt),o={model:s,messages:a.map(gn),max_tokens:t?.maxTokens??4096};return i&&(o.system=i),t?.temperature!=null&&(o.temperature=t.temperature),t?.tools&&t.tools.length>0&&(o.tools=t.tools.map(hn)),t?.maxReasoningTokens!=null&&(o.thinking={type:"enabled",budget_tokens:t.maxReasoningTokens}),t?.cacheHint,r&&(o.stream=!0),t?.providerExtras&&Object.assign(o,t.providerExtras),o}function mn(e,t){let n=[];t&&n.push(t);let r=[];for(let s of e)s.role==="system"?n.push(s.content):r.push(s);return{system:n.length>0?n.join(`
4
5
 
5
- `):void 0,chat:n}}function qe(e){if(e.role==="tool")return{role:"user",content:[{type:"tool_result",tool_use_id:e.toolCallId,content:e.content}]};if(e.role==="assistant"&&e.toolCalls&&e.toolCalls.length>0){let t=[];e.content&&t.push({type:"text",text:e.content});for(let r of e.toolCalls)t.push({type:"tool_use",id:r.id,name:r.name,input:r.arguments});return{role:"assistant",content:t}}return{role:e.role,content:e.content}}function Ve(e){return{name:e.name,description:e.description,input_schema:e.parameters}}function D(e,t){if(!e)return{...t};let r={...e};return t.input_tokens!=null&&(r.input_tokens=t.input_tokens),t.output_tokens!=null&&(r.output_tokens=t.output_tokens),t.cache_read_input_tokens!=null&&(r.cache_read_input_tokens=t.cache_read_input_tokens),t.cache_creation_input_tokens!=null&&(r.cache_creation_input_tokens=t.cache_creation_input_tokens),t.cache_creation&&(r.cache_creation={...e.cache_creation??{},...t.cache_creation}),t.server_tool_use&&(r.server_tool_use={...e.server_tool_use??{},...t.server_tool_use}),r}function q(e){let t={input:{regular:e?.input_tokens??0},output:{regular:e?.output_tokens??0},raw:e};return e?.cache_read_input_tokens&&(t.input.cacheRead=e.cache_read_input_tokens),e?.cache_creation?(e.cache_creation.ephemeral_5m_input_tokens&&(t.input.cacheWrite5m=e.cache_creation.ephemeral_5m_input_tokens),e.cache_creation.ephemeral_1h_input_tokens&&(t.input.cacheWrite1h=e.cache_creation.ephemeral_1h_input_tokens)):e?.cache_creation_input_tokens&&(t.input.cacheWrite5m=e.cache_creation_input_tokens),e?.server_tool_use?.web_search_requests&&(t.auxiliary={webSearchRequests:e.server_tool_use.web_search_requests}),t}function ie(e,t){let r=[],n=[];for(let i of e.content)if(i.type==="text"&&typeof i.text=="string")r.push(i.text);else if(i.type==="tool_use"){let a=i;n.push({id:a.id,name:a.name,arguments:a.input??{}})}return{content:r.join(""),toolCalls:n.length>0?n:void 0,usage:q(e.usage),finishReason:e.stop_reason,latencyMs:t,model:e.model,provider:"anthropic"}}function He(e){let t=e.apiKey??globalThis.process?.env?.ANTHROPIC_API_KEY,r=e.baseURL??"https://api.anthropic.com",n=e.anthropicVersion??"2023-06-01",i=e.fetchImpl??fetch,a=()=>{if(!t)throw new Error("anthropicAdapter: apiKey required for invoke/stream (or provide opts.sdk)");return{"x-api-key":t,"anthropic-version":n,"content-type":"application/json",...e.headers??{}}};return{provider:"anthropic",model:e.model,async invoke(s,o){let c=U(s,o,e.model,!1),u=h(),l=await i(`${r}/v1/messages`,{method:"POST",headers:a(),body:JSON.stringify(c),signal:o?.signal});if(!l.ok)throw await se(l);let d=await l.json(),p=Math.max(0,(h()-u)/1e6);return ie(d,p)},async*stream(s,o){let c=U(s,o,e.model,!0),u=await i(`${r}/v1/messages`,{method:"POST",headers:{...a(),accept:"text/event-stream"},body:JSON.stringify(c),signal:o?.signal});if(!u.ok)throw await se(u);if(!u.body)throw new Error("anthropicAdapter: streaming response has no body");let l,d,p=new Map;for await(let m of ze(u.body)){let w=m.data;if(!w)continue;let g;try{g=JSON.parse(w)}catch{continue}switch(g.type){case"message_start":{l=D(l,g.message.usage);break}case"content_block_start":{let f=g,y=f.content_block;y.type==="tool_use"&&(p.set(f.index,{id:String(y.id??""),name:String(y.name??""),argBuf:""}),yield{type:"tool-call-delta",delta:{id:String(y.id??""),name:String(y.name??"")}});break}case"content_block_delta":{let f=g,y=f.delta;if(y.type==="text_delta"&&typeof y.text=="string")yield{type:"token",delta:y.text};else if(y.type==="input_json_delta"&&typeof y.partial_json=="string"){let k=p.get(f.index);k&&(k.argBuf+=y.partial_json),yield{type:"tool-call-delta",delta:{argumentsDelta:y.partial_json}}}else y.type==="thinking_delta"&&typeof y.thinking=="string"&&(yield{type:"thinking",delta:y.thinking});break}case"message_delta":{let f=g;f.delta.stop_reason&&(d=f.delta.stop_reason),f.delta.usage&&(l=D(l,f.delta.usage));break}case"message_stop":break}}l&&(yield{type:"usage",usage:q(l)}),yield{type:"finish",reason:d??"stop"}}}}function Ye(e){let t=e.sdk;if(!t)throw new Error("sdkBackedAnthropic: sdk instance required");return{provider:"anthropic",model:e.model,async invoke(r,n){let i=U(r,n,e.model,!1),a=h(),s=await t.messages.create(i,{signal:n?.signal}),o=Math.max(0,(h()-a)/1e6);return ie(s,o)},async*stream(r,n){if(!t.messages.stream)throw new Error("sdkBackedAnthropic: SDK instance does not expose .messages.stream");let i=U(r,n,e.model,!0),a,s;for await(let o of t.messages.stream(i,{signal:n?.signal}))switch(o.type){case"message_start":a=D(a,o.message.usage);break;case"content_block_delta":{let c=o.delta;c?.type==="text_delta"&&typeof c.text=="string"?yield{type:"token",delta:c.text}:c?.type==="input_json_delta"&&typeof c.partial_json=="string"?yield{type:"tool-call-delta",delta:{argumentsDelta:c.partial_json}}:c?.type==="thinking_delta"&&typeof c.thinking=="string"&&(yield{type:"thinking",delta:c.thinking});break}case"message_delta":{let c=o;c.delta.stop_reason&&(s=c.delta.stop_reason),c.delta.usage&&(a=D(a,c.delta.usage));break}}a&&(yield{type:"usage",usage:q(a)}),yield{type:"finish",reason:s??"stop"}}}}async function*ze(e){let t=e.getReader(),r=new TextDecoder,n="";try{for(;;){let{done:i,value:a}=await t.read();if(i){n.length>0&&(yield re(n));return}n+=r.decode(a,{stream:!0});let s=oe(n);for(;s!==null;){let o=n.slice(0,s.index);n=n.slice(s.index+s.length);let c=re(o);(c.data||c.event)&&(yield c),s=oe(n)}}}finally{t.releaseLock()}}function re(e){let t={},r=[];for(let n of e.split(`
6
- `)){let i=n.endsWith("\r")?n.slice(0,-1):n;if(!i||i.startsWith(":"))continue;let a=i.indexOf(":"),s=a===-1?i:i.slice(0,a),o=a===-1?"":i.slice(a+1).replace(/^ /,"");s==="data"?r.push(o):s==="event"?t.event=o:s==="id"&&(t.id=o)}return r.length>0&&(t.data=r.join(`
7
- `)),t}function oe(e){let t=e.indexOf(`\r
8
- \r
9
- `),r=e.indexOf(`
6
+ `):void 0,chat:r}}function gn(e){if(e.role==="tool")return{role:"user",content:[{type:"tool_result",tool_use_id:e.toolCallId,content:e.content}]};if(e.role==="assistant"&&e.toolCalls&&e.toolCalls.length>0){let t=[];e.content&&t.push({type:"text",text:e.content});for(let n of e.toolCalls)t.push({type:"tool_use",id:n.id,name:n.name,input:n.arguments});return{role:"assistant",content:t}}return{role:e.role,content:e.content}}function hn(e){return{name:e.name,description:e.description,input_schema:e.parameters}}function le(e,t){if(!e)return{...t};let n={...e};return t.input_tokens!=null&&(n.input_tokens=t.input_tokens),t.output_tokens!=null&&(n.output_tokens=t.output_tokens),t.cache_read_input_tokens!=null&&(n.cache_read_input_tokens=t.cache_read_input_tokens),t.cache_creation_input_tokens!=null&&(n.cache_creation_input_tokens=t.cache_creation_input_tokens),t.cache_creation&&(n.cache_creation={...e.cache_creation??{},...t.cache_creation}),t.server_tool_use&&(n.server_tool_use={...e.server_tool_use??{},...t.server_tool_use}),n}function Pe(e){let t={input:{regular:e?.input_tokens??0},output:{regular:e?.output_tokens??0},raw:e};return e?.cache_read_input_tokens&&(t.input.cacheRead=e.cache_read_input_tokens),e?.cache_creation?(e.cache_creation.ephemeral_5m_input_tokens&&(t.input.cacheWrite5m=e.cache_creation.ephemeral_5m_input_tokens),e.cache_creation.ephemeral_1h_input_tokens&&(t.input.cacheWrite1h=e.cache_creation.ephemeral_1h_input_tokens)):e?.cache_creation_input_tokens&&(t.input.cacheWrite5m=e.cache_creation_input_tokens),e?.server_tool_use?.web_search_requests&&(t.auxiliary={webSearchRequests:e.server_tool_use.web_search_requests}),t}function bt(e,t){let n=[],r=[];for(let s of e.content)if(s.type==="text"&&typeof s.text=="string")n.push(s.text);else if(s.type==="tool_use"){let i=s;r.push({id:i.id,name:i.name,arguments:i.input??{}})}return{content:n.join(""),toolCalls:r.length>0?r:void 0,usage:Pe(e.usage),finishReason:e.stop_reason,latencyMs:t,model:e.model,provider:"anthropic"}}function yn(e){let t=e.apiKey??globalThis.process?.env?.ANTHROPIC_API_KEY,n=e.baseURL??"https://api.anthropic.com",r=e.anthropicVersion??"2023-06-01",s=e.fetchImpl??fetch,i=()=>{if(!t)throw new Error("anthropicAdapter: apiKey required for invoke/stream (or provide opts.sdk)");return{"x-api-key":t,"anthropic-version":r,"content-type":"application/json",...e.headers??{}}};return{provider:"anthropic",model:e.model,async invoke(a,o){let c=de(a,o,e.model,!1),d=w(),l=await s(`${n}/v1/messages`,{method:"POST",headers:i(),body:JSON.stringify(c),signal:o?.signal});if(!l.ok)throw await O(l,"Anthropic");let u=await l.json(),p=Math.max(0,(w()-d)/1e6);return bt(u,p)},async*stream(a,o){let c=de(a,o,e.model,!0),d=await s(`${n}/v1/messages`,{method:"POST",headers:{...i(),accept:"text/event-stream"},body:JSON.stringify(c),signal:o?.signal});if(!d.ok)throw await O(d,"Anthropic");if(!d.body)throw new Error("anthropicAdapter: streaming response has no body");let l,u,p=new Map;for await(let f of K(d.body,{signal:o?.signal})){let y=f.data;if(!y)continue;let h;try{h=JSON.parse(y)}catch{continue}switch(h.type){case"message_start":{l=le(l,h.message.usage);break}case"content_block_start":{let m=h,g=m.content_block;g.type==="tool_use"&&(p.set(m.index,{id:String(g.id??""),name:String(g.name??""),argBuf:""}),yield{type:"tool-call-delta",delta:{id:String(g.id??""),name:String(g.name??"")}});break}case"content_block_delta":{let m=h,g=m.delta;if(g.type==="text_delta"&&typeof g.text=="string")yield{type:"token",delta:g.text};else if(g.type==="input_json_delta"&&typeof g.partial_json=="string"){let _=p.get(m.index);_&&(_.argBuf+=g.partial_json),yield{type:"tool-call-delta",delta:{argumentsDelta:g.partial_json}}}else g.type==="thinking_delta"&&typeof g.thinking=="string"&&(yield{type:"thinking",delta:g.thinking});break}case"message_delta":{let m=h;m.delta.stop_reason&&(u=m.delta.stop_reason),m.delta.usage&&(l=le(l,m.delta.usage));break}case"message_stop":break}}l&&(yield{type:"usage",usage:Pe(l)}),yield{type:"finish",reason:u??"stop"}}}}function bn(e){let t=e.sdk;if(!t)throw new Error("sdkBackedAnthropic: sdk instance required");return{provider:"anthropic",model:e.model,async invoke(n,r){let s=de(n,r,e.model,!1),i=w(),a=await t.messages.create(s,{signal:r?.signal}),o=Math.max(0,(w()-i)/1e6);return bt(a,o)},async*stream(n,r){if(!t.messages.stream)throw new Error("sdkBackedAnthropic: SDK instance does not expose .messages.stream");let s=de(n,r,e.model,!0),i,a;for await(let o of t.messages.stream(s,{signal:r?.signal}))switch(o.type){case"message_start":i=le(i,o.message.usage);break;case"content_block_delta":{let c=o.delta;c?.type==="text_delta"&&typeof c.text=="string"?yield{type:"token",delta:c.text}:c?.type==="input_json_delta"&&typeof c.partial_json=="string"?yield{type:"tool-call-delta",delta:{argumentsDelta:c.partial_json}}:c?.type==="thinking_delta"&&typeof c.thinking=="string"&&(yield{type:"thinking",delta:c.thinking});break}case"message_delta":{let c=o;c.delta.stop_reason&&(a=c.delta.stop_reason),c.delta.usage&&(i=le(i,c.delta.usage));break}}i&&(yield{type:"usage",usage:Pe(i)}),yield{type:"finish",reason:a??"stop"}}}}Oe();function ue(){let e=new Error("aborted");return e.name="AbortError",e}function kt(e,t){return e<=0?Promise.resolve():t?.aborted?Promise.reject(ue()):new Promise((n,r)=>{let s=new V,i,a=()=>{s.cancel(),t&&i&&t.removeEventListener("abort",i)};s.start(e,()=>{a(),n()}),t&&(i=()=>{a(),r(ue())},t.addEventListener("abort",i,{once:!0}))})}function pe(e={}){let t=e.provider??"dry-run",n=e.model??"dry-run-v1",r=e.latencyMs??0,s=Math.max(1,e.streamChunkSize??16),i=e.respond??(o=>{let c=[...o].reverse().find(d=>d.role==="user");return c?`echo: ${c.content}`:"dry-run: no user message"}),a=e.usage??((o,c)=>{let d=o.reduce((l,u)=>l+u.content.length,0);return{input:{regular:Math.ceil(d/4)},output:{regular:Math.ceil(c.length/4)}}});return{provider:t,model:n,async invoke(o,c){if(await kt(r,c?.signal),c?.signal?.aborted)throw ue();let d=i(o,c),l=a(o,d);return{content:d,usage:l,finishReason:"stop",model:c?.model??n,provider:t,tier:c?.tier,metadata:{dryRun:!0}}},async*stream(o,c){let d=i(o,c),l=a(o,d),u=Math.ceil(d.length/s)||1,p=r>0?r/u:0;for(let f=0;f<d.length;f+=s){if(c?.signal?.aborted)throw ue();await kt(p,c?.signal),yield{type:"token",delta:d.slice(f,f+s)}}yield{type:"usage",usage:l},yield{type:"finish",reason:"stop"}}}}L();async function fe(e){let t=typeof e=="string"?new TextEncoder().encode(e):e,n=await globalThis.crypto.subtle.digest("SHA-256",t),r=new Uint8Array(n),s="";for(let i=0;i<r.length;i++)s+=Tt[r[i]];return s}var Tt=new Array(256);for(let e=0;e<256;e++)Tt[e]=e.toString(16).padStart(2,"0");function Ie(){let e=new Map;return{save(t,n){e.set(t,JSON.parse(JSON.stringify(n)))},load(t){let n=e.get(t);return n===void 0?null:JSON.parse(JSON.stringify(n))},clear(t){e.delete(t)},list(){return[...e.keys()].sort()}}}L();var Fe=class extends Error{constructor(n,r){super(`content-addressed lookup miss in read-strict mode: ${n}`);this.key=n;this.context=r;this.name="ContentAddressedMissError"}};function De(e){let t=new Set,n=r=>{if(r===null||typeof r!="object")return r;let s=r;if(t.has(s))return{__cycle:!0};t.add(s);try{if(Array.isArray(r))return r.map(n);let i={};for(let a of Object.keys(r).sort())i[a]=n(r[a]);return i}finally{t.delete(s)}};return JSON.stringify(n(e))}function wt(e){let{storage:t,keyContext:n,keyPrefix:r,mode:s="read-write"}=e,i=n??(o=>o);async function a(o){let c=De(i(o)),d=await fe(c);return r?`${r}:${d}`:d}return{keyFor:a,async lookup(o){if(s==="write")return;let c=await a(o),d=await t.load(c);if(d==null){if(s==="read-strict")throw new Fe(c,o);return}return d},async store(o,c){if(s==="read")return;let d=await a(o);await t.save(d,c)},async forget(o){if(s==="read"||s==="write"||!t.clear)return;let c=await a(o);await t.clear(c)}}}ce();function vt(e,t={}){let n=t.keyFn??(s=>String(s)),r=new Map;return s=>{let i=n(s),a=r.get(i);if(a)return a;let o=e(s),c;o!=null&&typeof o.then=="function"?c=Promise.resolve(o):o!=null&&typeof o=="object"&&"subscribe"in o&&"cache"in o?c=G(o):o!=null&&typeof o=="object"&&Symbol.asyncIterator in o?c=(async()=>{let u=o[Symbol.asyncIterator]();try{let{value:p,done:f}=await u.next();if(f)throw new Error("singleFromAny: factory returned empty async iterable");return p}finally{await u.return?.()}})():o!=null&&typeof o=="object"&&Symbol.iterator in o?c=(async()=>{let u=o[Symbol.iterator]();try{let{value:p,done:f}=u.next();if(f)throw new Error("singleFromAny: factory returned empty iterable");return p}finally{u.return?.()}})():c=Promise.resolve(o);let d,l=()=>{r.get(i)===d&&r.delete(i)};return d=c.then(u=>(l(),u),u=>{throw l(),u}),r.set(i,d),d}}ce();Oe();function xt(e){let{storage:t,mode:n="read-write",keyFn:r,keyPrefix:s="llm-replay"}=e,a=wt({storage:t,keyPrefix:s,mode:n==="read-strict"?"read":n,keyContext:({messages:c,opts:d})=>{let{signal:l,keyContext:u,...p}=d??{};return{messages:c,opts:p}}});async function o(c,d){if(r){if(r.length<=1){let u={messages:c,opts:d,context:d?.keyContext},p=await r(u);return`${s}:${p}`}let l=await r(c,d);return`${s}:${l}`}return a.keyFor({messages:c,opts:d})}return{keyFor:o,async lookup(c,d){if(n!=="write"){if(r){let l=await o(c,d),u=await t.load(l);return u??void 0}return a.lookup({messages:c,opts:d})}},async store(c,d,l){if(n!=="read"){if(r){let u=await o(c,d);await t.save(u,l);return}await a.store({messages:c,opts:d},l)}},async forget(c,d){if(!(n==="read"||n==="write")&&t.clear){if(r){let l=await o(c,d);await t.clear(l);return}await a.forget({messages:c,opts:d})}}}}function _t(e,t,n){return{provider:n?.provider??e.provider,model:n?.model??e.model,capabilities:n?.capabilities??e.capabilities?.bind(e),invoke:t.invoke,stream:t.stream}}var St=Symbol.for("graphrefly.adapter.middlewareLayers");function me(e,t,n){let s=[...n?kn(n):[],t];return Object.defineProperty(e,St,{value:Object.freeze(s),enumerable:!1,writable:!1,configurable:!1}),e}function kn(e){let t=e[St];return Array.isArray(t)?t:[]}var X=class extends Error{constructor(n,r){super(`withReplayCache: no cached response for ${r} (key=${n}, mode=read-strict)`);this.key=n;this.method=r}name="ReplayCacheMissError"};function At(e,t){let n=t.mode??"read-write",r=t.cacheStreaming??!1,s=t.captureStreamCadence??!1,i=t.replaySpeed??1,a=t.keyPrefix??"llm-replay",o=n==="read"||n==="read-strict",c=xt({storage:t.storage,mode:n==="write-only"?"write":n,keyFn:t.keyFn,keyPrefix:a}),d=p=>p<=0?Promise.resolve():new Promise(f=>{new V().start(p,()=>f())}),l=vt(async({messages:p,invokeOpts:f})=>await G(Y(e.invoke(p,f))),{keyFn:({_precomputedKey:p})=>p}),u=_t(e,{async invoke(p,f){let y=await c.keyFor(p,f),h=await c.lookup(p,f);if(h?.response){let g=h.response;return{...g,metadata:{...g.metadata??{},replayCache:"hit"}}}if(n==="read-strict")throw new X(y,"invoke");let m=await l({messages:p,invokeOpts:f,_precomputedKey:y});return o||await c.store(p,f,{response:m,storedAtNs:D()}),m},async*stream(p,f){if(!r){for await(let b of e.stream(p,f))yield b;return}let y=await c.keyFor(p,f),h=await c.lookup(p,f);if(h){let b=h.response;if(h.streamChunks&&h.streamCadenceMs)for(let T=0;T<h.streamChunks.length;T++){let x=h.streamCadenceMs[T]??0,C=i>0?x/i:0;C>0&&await d(C),yield{type:"token",delta:h.streamChunks[T]?.delta??""}}else b.content&&(yield{type:"token",delta:b.content});b.usage&&(yield{type:"usage",usage:b.usage}),yield{type:"finish",reason:b.finishReason??"stop"};return}if(n==="read-strict")throw new X(y,"stream");let m="",g,_,S=[],N=[],k;for await(let b of e.stream(p,f)){if(b.type==="token"&&(m+=b.delta,s)){let T=w(),x=k===void 0?0:(T-k)/1e6;N.push(x),k=T,S.push({delta:b.delta})}b.type==="usage"&&(g=b.usage),b.type==="finish"&&(_=b.reason),yield b}if((m||g)&&!o){let T={response:{content:m,usage:g??{input:{regular:0},output:{regular:0}},finishReason:_,model:e.model??f?.model??"",provider:e.provider},storedAtNs:D(),...s?{streamChunks:S,streamCadenceMs:N}:{}};await c.store(p,f,T)}}});return me(u,"withReplayCache",e),u}var Et=De;function Rt(e,t){return{content:"[fallback: no cached response available for this request]",usage:{input:{regular:0},output:{regular:0}},finishReason:"stop",model:t,provider:e,metadata:{degraded:!0,reason:"no-fixture"}}}function Mt(e,t,n){return typeof e=="string"?{content:e,usage:{input:{regular:0},output:{regular:0}},finishReason:"stop",model:n,provider:t,metadata:{degraded:!0,reason:"respond"}}:e}async function Tn(e,t){if("key"in e)return e.key;let n=Et({messages:e.messages,opts:e.invokeOpts??{}}),r=await fe(n);return`${t}:${r}`}function wn(e){let t={response:e.response,storedAtNs:D()};if("key"in e&&e.stream){let n=e.stream.chunks.filter(r=>r.type==="token");return{...t,streamChunks:n.map(r=>({delta:r.delta})),streamCadenceMs:e.stream.delaysMs??n.map(()=>0)}}return t}function vn(e,t){let n=[];if(e.fixtures!=null&&n.push("fixtures"),e.fixturesStorage!=null&&n.push("fixturesStorage"),n.length>1)throw new TypeError(`fallbackAdapter: \`fixtures\` and \`fixturesStorage\` are mutually exclusive; got both ${n.join(" and ")}. Pick one source. For filesystem directories use the node subpath's \`fallbackAdapter\`.`);if(e.fixtures){let r=Ie(),s=e.fixtures,i=(async()=>{for(let a of s){let o=await Tn(a,t);await r.save(o,wn(a))}})();return i.catch(()=>{}),{tier:r,seedReady:i}}return e.fixturesStorage?{tier:e.fixturesStorage,seedReady:Promise.resolve()}:{tier:void 0,seedReady:Promise.resolve()}}function Nt(e={}){let t=e.provider??"fallback",n=e.model??"fallback",r=e.onMiss??"respond",s=e.keyPrefix??"fallback",i=e.record?e.record.adapter:r==="throw"?pe({provider:t,model:n,respond:()=>"[unreachable: read-strict mode throws on miss]"}):{provider:t,model:n,async invoke(l,u){let p=e.respond?e.respond(l,u):Rt(t,n);return Mt(p,t,n)},async*stream(l,u){let p=e.respond?e.respond(l,u):Rt(t,n),f=Mt(p,t,n);yield{type:"token",delta:f.content},f.usage&&(yield{type:"usage",usage:f.usage}),yield{type:"finish",reason:f.finishReason??"stop"}}},a,o=Promise.resolve();if(e.record){if(!e.record.storage)throw new TypeError("fallbackAdapter: `record.storage` is required in record mode. For filesystem `record.dir` convenience, use the node subpath's `fallbackAdapter`.");a=e.record.storage}else{let l=vn(e,s);a=l.tier??Ie(),o=l.seedReady}let c=e.record?"read-write":r==="throw"?"read-strict":"read",d=At(i,{storage:a,mode:c,keyPrefix:s,cacheStreaming:!0,captureStreamCadence:!0,replaySpeed:e.replaySpeed,...e.keyFn?{keyFn:e.keyFn}:{}});return{provider:t,model:n,capabilities:d.capabilities?.bind(d),async invoke(l,u){return await o,d.invoke(l,u)},async*stream(l,u){await o;for await(let p of d.stream(l,u))yield p}}}L();function Ct(e={}){return e.sdk?An(e):Sn(e)}function ge(e,t){let n=[],r=[];t?.systemPrompt&&n.push(t.systemPrompt);for(let a of e){if(a.role==="system"){n.push(a.content);continue}if(a.role==="tool"){r.push({role:"user",parts:[{functionResponse:{name:a.name??a.toolCallId??"tool",response:{result:a.content}}}]});continue}if(a.role==="assistant"&&a.toolCalls&&a.toolCalls.length>0){let o=[];a.content&&o.push({text:a.content});for(let c of a.toolCalls)o.push({functionCall:{name:c.name,args:c.arguments}});r.push({role:"model",parts:o});continue}r.push({role:a.role==="assistant"?"model":"user",parts:[{text:a.content}]})}let s={contents:r};n.length>0&&(s.systemInstruction={role:"system",parts:[{text:n.join(`
10
7
 
11
- `),n=null;return t!==-1&&(n={index:t,length:4}),r!==-1&&(n===null||r<n.index)&&(n={index:r,length:2}),n}async function se(e){let t;try{t=await e.text()}catch{t=""}let r=new Error(`Anthropic API ${e.status}: ${e.statusText}${t?` \u2014 ${t}`:""}`);return r.status=e.status,r.headers=e.headers,r}V();function F(){let e=new Error("aborted");return e.name="AbortError",e}function ce(e,t){return e<=0?Promise.resolve():t?.aborted?Promise.reject(F()):new Promise((r,n)=>{let i=new T,a,s=()=>{i.cancel(),t&&a&&t.removeEventListener("abort",a)};i.start(e,()=>{s(),r()}),t&&(a=()=>{s(),n(F())},t.addEventListener("abort",a,{once:!0}))})}function K(e={}){let t=e.provider??"dry-run",r=e.model??"dry-run-v1",n=e.latencyMs??0,i=Math.max(1,e.streamChunkSize??16),a=e.respond??(o=>{let c=[...o].reverse().find(u=>u.role==="user");return c?`echo: ${c.content}`:"dry-run: no user message"}),s=e.usage??((o,c)=>{let u=o.reduce((l,d)=>l+d.content.length,0);return{input:{regular:Math.ceil(u/4)},output:{regular:Math.ceil(c.length/4)}}});return{provider:t,model:r,async invoke(o,c){if(await ce(n,c?.signal),c?.signal?.aborted)throw F();let u=a(o,c),l=s(o,u);return{content:u,usage:l,finishReason:"stop",model:c?.model??r,provider:t,tier:c?.tier,metadata:{dryRun:!0}}},async*stream(o,c){let u=a(o,c),l=s(o,u),d=Math.ceil(u.length/i)||1,p=n>0?n/d:0;for(let m=0;m<u.length;m+=i){if(c?.signal?.aborted)throw F();await ce(p,c?.signal),yield{type:"token",delta:u.slice(m,m+i)}}yield{type:"usage",usage:l},yield{type:"finish",reason:"stop"}}}}A();async function j(e){let t=typeof e=="string"?new TextEncoder().encode(e):e,r=await globalThis.crypto.subtle.digest("SHA-256",t),n=new Uint8Array(r),i="";for(let a=0;a<n.length;a++)i+=le[n[a]];return i}var le=new Array(256);for(let e=0;e<256;e++)le[e]=e.toString(16).padStart(2,"0");function H(){let e=new Map;return{save(t,r){e.set(t,JSON.parse(JSON.stringify(r)))},load(t){let r=e.get(t);return r===void 0?null:JSON.parse(JSON.stringify(r))},clear(t){e.delete(t)},list(){return[...e.keys()].sort()}}}A();ye();function he(e,t={}){let r=t.keyFn??(i=>String(i)),n=new Map;return i=>{let a=r(i),s=n.get(a);if(s)return s;let o=e(i),c;o!=null&&typeof o.then=="function"?c=Promise.resolve(o):o!=null&&typeof o=="object"&&"subscribe"in o&&"cache"in o?c=ge(o):o!=null&&typeof o=="object"&&Symbol.asyncIterator in o?c=(async()=>{let d=o[Symbol.asyncIterator]();try{let{value:p,done:m}=await d.next();if(m)throw new Error("singleFromAny: factory returned empty async iterable");return p}finally{await d.return?.()}})():o!=null&&typeof o=="object"&&Symbol.iterator in o?c=(async()=>{let d=o[Symbol.iterator]();try{let{value:p,done:m}=d.next();if(m)throw new Error("singleFromAny: factory returned empty iterable");return p}finally{d.return?.()}})():c=Promise.resolve(o);let u,l=()=>{n.get(a)===u&&n.delete(a)};return u=c.then(d=>(l(),d),d=>{throw l(),d}),n.set(a,u),u}}V();var E=class extends Error{constructor(r,n){super(`withReplayCache: no cached response for ${n} (key=${r}, mode=read-strict)`);this.key=r;this.method=n}name="ReplayCacheMissError"};function be(e,t){let r=t.mode??"read-write",n=t.cacheStreaming??!1,i=t.captureStreamCadence??!1,a=t.replaySpeed??1,s=t.keyPrefix??"llm-replay",o=t.storage,c=r==="read"||r==="read-strict",u=async(g,f)=>{if(t.keyFn){let R=t.keyFn;if(R.length<=1){let v={messages:g,opts:f,context:f?.keyContext},b=await R(v);return`${s}:${b}`}let N=await R(g,f);return`${s}:${N}`}let{signal:y,keyContext:k,...x}=f??{},_=z({messages:g,opts:x}),O=await j(_);return`${s}:${O}`},l=async g=>{if(r==="write-only")return;let f=await o.load(g);if(f!=null)try{return typeof f=="string"?JSON.parse(f):f}catch{return}},d=async g=>(await l(g))?.response,p=async(g,f,y)=>{if(c)return;let k={response:f,storedAtNs:I(),...y?{streamChunks:y.chunks,streamCadenceMs:y.delaysMs}:{}};await o.save(g,k)},m=g=>g<=0?Promise.resolve():new Promise(f=>{new T().start(g,()=>f())}),w=he(async({messages:g,invokeOpts:f})=>{let y=e.invoke(g,f);return await st(y)},{keyFn:({_precomputedKey:g})=>g});return{provider:e.provider,model:e.model,capabilities:e.capabilities?.bind(e),async invoke(g,f){let y=await u(g,f),k=await d(y);if(k)return{...k,metadata:{...k.metadata??{},replayCache:"hit"}};if(r==="read-strict")throw new E(y,"invoke");let x=await w({messages:g,invokeOpts:f,_precomputedKey:y});return await p(y,x),x},async*stream(g,f){if(!n){for await(let b of e.stream(g,f))yield b;return}let y=await u(g,f),k=await l(y);if(k){let b=k.response;if(k.streamChunks&&k.streamCadenceMs)for(let L=0;L<k.streamChunks.length;L++){let J=k.streamCadenceMs[L]??0,ee=a>0?J/a:0;ee>0&&await m(ee),yield{type:"token",delta:k.streamChunks[L]?.delta??""}}else b.content&&(yield{type:"token",delta:b.content});b.usage&&(yield{type:"usage",usage:b.usage}),yield{type:"finish",reason:b.finishReason??"stop"};return}if(r==="read-strict")throw new E(y,"stream");let x="",_,O,R=[],N=[],v;for await(let b of e.stream(g,f)){if(b.type==="token"&&(x+=b.delta,i)){let L=h(),J=v===void 0?0:(L-v)/1e6;N.push(J),v=L,R.push({delta:b.delta})}b.type==="usage"&&(_=b.usage),b.type==="finish"&&(O=b.reason),yield b}if(x||_){let b={content:x,usage:_??{input:{regular:0},output:{regular:0}},finishReason:O,model:e.model??f?.model??"",provider:e.provider};await p(y,b,i?{chunks:R,delaysMs:N}:void 0)}}}}function z(e){let t=new Set,r=n=>{if(n===null||typeof n!="object")return n;let i=n;if(t.has(i))return{__cycle:!0};t.add(i);try{if(Array.isArray(n))return n.map(r);let a={};for(let s of Object.keys(n).sort())a[s]=r(n[s]);return a}finally{t.delete(i)}};return JSON.stringify(r(e))}async function st(e){if(e!=null&&typeof e.then=="function")return await e;if(e&&typeof e=="object"&&"content"in e)return e;throw new Error("withReplayCache: adapter.invoke must return Promise or LLMResponse (Node input not supported in cache path)")}function ke(e,t){return{content:"[fallback: no cached response available for this request]",usage:{input:{regular:0},output:{regular:0}},finishReason:"stop",model:t,provider:e,metadata:{degraded:!0,reason:"no-fixture"}}}function we(e,t,r){return typeof e=="string"?{content:e,usage:{input:{regular:0},output:{regular:0}},finishReason:"stop",model:r,provider:t,metadata:{degraded:!0,reason:"respond"}}:e}async function at(e,t){if("key"in e)return e.key;let r=z({messages:e.messages,opts:e.invokeOpts??{}}),n=await j(r);return`${t}:${n}`}function it(e){let t={response:e.response,storedAtNs:I()};if("key"in e&&e.stream){let r=e.stream.chunks.filter(n=>n.type==="token");return{...t,streamChunks:r.map(n=>({delta:n.delta})),streamCadenceMs:e.stream.delaysMs??r.map(()=>0)}}return t}function ct(e,t){let r=[];if(e.fixtures!=null&&r.push("fixtures"),e.fixturesStorage!=null&&r.push("fixturesStorage"),r.length>1)throw new TypeError(`fallbackAdapter: \`fixtures\` and \`fixturesStorage\` are mutually exclusive; got both ${r.join(" and ")}. Pick one source. For filesystem directories use the node subpath's \`fallbackAdapter\`.`);if(e.fixtures){let n=H(),i=e.fixtures,a=(async()=>{for(let s of i){let o=await at(s,t);await n.save(o,it(s))}})();return a.catch(()=>{}),{tier:n,seedReady:a}}return e.fixturesStorage?{tier:e.fixturesStorage,seedReady:Promise.resolve()}:{tier:void 0,seedReady:Promise.resolve()}}function Ae(e={}){let t=e.provider??"fallback",r=e.model??"fallback",n=e.onMiss??"respond",i=e.keyPrefix??"fallback",a=e.record?e.record.adapter:n==="throw"?K({provider:t,model:r,respond:()=>"[unreachable: read-strict mode throws on miss]"}):{provider:t,model:r,async invoke(l,d){let p=e.respond?e.respond(l,d):ke(t,r);return we(p,t,r)},async*stream(l,d){let p=e.respond?e.respond(l,d):ke(t,r),m=we(p,t,r);yield{type:"token",delta:m.content},m.usage&&(yield{type:"usage",usage:m.usage}),yield{type:"finish",reason:m.finishReason??"stop"}}},s,o=Promise.resolve();if(e.record){if(!e.record.storage)throw new TypeError("fallbackAdapter: `record.storage` is required in record mode. For filesystem `record.dir` convenience, use the node subpath's `fallbackAdapter`.");s=e.record.storage}else{let l=ct(e,i);s=l.tier??H(),o=l.seedReady}let c=e.record?"read-write":n==="throw"?"read-strict":"read",u=be(a,{storage:s,mode:c,keyPrefix:i,cacheStreaming:!0,captureStreamCadence:!0,replaySpeed:e.replaySpeed,...e.keyFn?{keyFn:e.keyFn}:{}});return{provider:t,model:r,capabilities:u.capabilities?.bind(u),async invoke(l,d){return await o,u.invoke(l,d)},async*stream(l,d){await o;for await(let p of u.stream(l,d))yield p}}}A();function Te(e={}){return e.sdk?pt(e):ut(e)}function B(e,t){let r=[],n=[];t?.systemPrompt&&r.push(t.systemPrompt);for(let s of e){if(s.role==="system"){r.push(s.content);continue}if(s.role==="tool"){n.push({role:"user",parts:[{functionResponse:{name:s.name??s.toolCallId??"tool",response:{result:s.content}}}]});continue}if(s.role==="assistant"&&s.toolCalls&&s.toolCalls.length>0){let o=[];s.content&&o.push({text:s.content});for(let c of s.toolCalls)o.push({functionCall:{name:c.name,args:c.arguments}});n.push({role:"model",parts:o});continue}n.push({role:s.role==="assistant"?"model":"user",parts:[{text:s.content}]})}let i={contents:n};r.length>0&&(i.systemInstruction={role:"system",parts:[{text:r.join(`
12
-
13
- `)}]});let a={};return t?.maxTokens!=null&&(a.maxOutputTokens=t.maxTokens),t?.temperature!=null&&(a.temperature=t.temperature),t?.maxReasoningTokens!=null&&(a.thinkingConfig={thinkingBudget:t.maxReasoningTokens}),Object.keys(a).length>0&&(i.generationConfig=a),t?.tools&&t.tools.length>0&&(i.tools=[{functionDeclarations:t.tools.map(lt)}]),t?.providerExtras&&Object.assign(i,t.providerExtras),i}function lt(e){return{name:e.name,description:e.description,parameters:e.parameters}}function X(e){let t={input:{regular:0},output:{regular:0},raw:e};if(!e)return t;let r=e.promptTokenCount??0,n=e.cachedContentTokenCount??0;if(t.input.regular=Math.max(0,r-n),n>0&&(t.input.cacheRead=n),e.toolUsePromptTokenCount&&(t.input.toolUse=e.toolUsePromptTokenCount),e.promptTokensDetails)for(let i of e.promptTokensDetails){let a=i.modality?.toLowerCase();a==="image"?t.input.image=(t.input.image??0)+i.tokenCount:a==="audio"?t.input.audio=(t.input.audio??0)+i.tokenCount:a==="video"&&(t.input.video=(t.input.video??0)+i.tokenCount)}return t.output.regular=e.candidatesTokenCount??0,e.thoughtsTokenCount&&(t.output.reasoning=e.thoughtsTokenCount),t}function _e(e,t){let r=e.candidates?.[0],n=r?.content?.parts??[],i=[],a=[],s=0;for(let o of n)typeof o.text=="string"&&i.push(o.text),o.functionCall&&a.push({id:`${o.functionCall.name}-${s++}`,name:o.functionCall.name,arguments:o.functionCall.args??{}});return{content:i.join(""),toolCalls:a.length>0?a:void 0,usage:X(e.usageMetadata),finishReason:r?.finishReason,latencyMs:t,model:e.modelVersion,provider:"google"}}function dt(e){if(e.apiKey)return e.apiKey;let t=globalThis.process?.env;return t?.GOOGLE_API_KEY??t?.GEMINI_API_KEY}function ut(e){let t=e.baseURL??"https://generativelanguage.googleapis.com/v1beta",r=e.fetchImpl??fetch,n=a=>{let s=a?.model??e.model;if(!s)throw new Error("googleAdapter: model must be set via options.model or invokeOpts.model");return s},i=()=>{let a=dt(e);if(!a)throw new Error("googleAdapter: apiKey required for invoke/stream");return`key=${encodeURIComponent(a)}`};return{provider:"google",model:e.model,async invoke(a,s){let o=n(s),c=B(a,s),u=h(),l=`${t}/models/${encodeURIComponent(o)}:generateContent?${i()}`,d=await r(l,{method:"POST",headers:{"content-type":"application/json",...e.headers??{}},body:JSON.stringify(c),signal:s?.signal});if(!d.ok)throw await Re(d);let p=await d.json(),m=Math.max(0,(h()-u)/1e6);return _e(p,m)},async*stream(a,s){let o=n(s),c=B(a,s),u=`${t}/models/${encodeURIComponent(o)}:streamGenerateContent?alt=sse&${i()}`,l=await r(u,{method:"POST",headers:{"content-type":"application/json",accept:"text/event-stream",...e.headers??{}},body:JSON.stringify(c),signal:s?.signal});if(!l.ok)throw await Re(l);if(!l.body)throw new Error("googleAdapter: streaming response has no body");let d,p;for await(let m of ft(l.body)){if(!m.data)continue;let w;try{w=JSON.parse(m.data)}catch{continue}let g=w.candidates?.[0];for(let f of g?.content?.parts??[])typeof f.text=="string"&&(f.thought?yield{type:"thinking",delta:f.text}:yield{type:"token",delta:f.text}),f.functionCall&&(yield{type:"tool-call-delta",delta:{name:f.functionCall.name,argumentsDelta:JSON.stringify(f.functionCall.args??{})}});g?.finishReason&&(p=g.finishReason),w.usageMetadata&&(d=w.usageMetadata)}d&&(yield{type:"usage",usage:X(d)}),yield{type:"finish",reason:p??"stop"}}}}function pt(e){let t=e.sdk;if(!t)throw new Error("sdkBackedGoogle: sdk instance required");return{provider:"google",model:e.model,async invoke(r,n){let i=B(r,n),a=n?.model??e.model;if(!a)throw new Error("googleAdapter: model required");let s=h(),o=await t.models.generateContent({...i,model:a},{signal:n?.signal}),c=Math.max(0,(h()-s)/1e6);return _e(o,c)},async*stream(r,n){if(!t.models.generateContentStream)throw new Error("sdkBackedGoogle: SDK instance does not expose generateContentStream");let i=B(r,n),a=n?.model??e.model;if(!a)throw new Error("googleAdapter: model required");let s,o;for await(let c of t.models.generateContentStream({...i,model:a},{signal:n?.signal})){let u=c.candidates?.[0];for(let l of u?.content?.parts??[])typeof l.text=="string"&&(l.thought?yield{type:"thinking",delta:l.text}:yield{type:"token",delta:l.text}),l.functionCall&&(yield{type:"tool-call-delta",delta:{name:l.functionCall.name,argumentsDelta:JSON.stringify(l.functionCall.args??{})}});u?.finishReason&&(o=u.finishReason),c.usageMetadata&&(s=c.usageMetadata)}s&&(yield{type:"usage",usage:X(s)}),yield{type:"finish",reason:o??"stop"}}}}async function*ft(e){let t=e.getReader(),r=new TextDecoder,n="";try{for(;;){let{done:i,value:a}=await t.read();if(i){n.length>0&&(yield xe(n));return}n+=r.decode(a,{stream:!0});let s=Le(n);for(;s!==null;){let o=n.slice(0,s.index);n=n.slice(s.index+s.length);let c=xe(o);(c.data||c.event)&&(yield c),s=Le(n)}}}finally{t.releaseLock()}}function xe(e){let t={},r=[];for(let n of e.split(`
14
- `)){let i=n.endsWith("\r")?n.slice(0,-1):n;if(!i||i.startsWith(":"))continue;let a=i.indexOf(":"),s=a===-1?i:i.slice(0,a),o=a===-1?"":i.slice(a+1).replace(/^ /,"");s==="data"?r.push(o):s==="event"?t.event=o:s==="id"&&(t.id=o)}return r.length>0&&(t.data=r.join(`
15
- `)),t}function Le(e){let t=e.indexOf(`\r
16
- \r
17
- `),r=e.indexOf(`
18
-
19
- `),n=null;return t!==-1&&(n={index:t,length:4}),r!==-1&&(n===null||r<n.index)&&(n={index:r,length:2}),n}async function Re(e){let t;try{t=await e.text()}catch{t=""}let r=new Error(`Google API ${e.status}: ${e.statusText}${t?` \u2014 ${t}`:""}`);return r.status=e.status,r.headers=e.headers,r}A();var mt={openai:{baseURL:"https://api.openai.com/v1",apiKeyEnv:"OPENAI_API_KEY",provider:"openai"},openrouter:{baseURL:"https://openrouter.ai/api/v1",apiKeyEnv:"OPENROUTER_API_KEY",provider:"openrouter"},groq:{baseURL:"https://api.groq.com/openai/v1",apiKeyEnv:"GROQ_API_KEY",provider:"groq"},ollama:{baseURL:"http://localhost:11434/v1",provider:"ollama"},deepseek:{baseURL:"https://api.deepseek.com/v1",apiKeyEnv:"DEEPSEEK_API_KEY",provider:"deepseek"},xai:{baseURL:"https://api.x.ai/v1",apiKeyEnv:"XAI_API_KEY",provider:"xai"}};function Se(e={}){return e.sdk?kt(e):bt(e)}function G(e,t,r,n,i){let a=t?.model??r;if(!a)throw new Error("openAICompatAdapter: model must be set via options.model or invokeOpts.model");let s=e.map(gt);t?.systemPrompt&&!e.some(c=>c.role==="system")&&s.unshift({role:"system",content:t.systemPrompt});let o={model:a,messages:s};return t?.maxTokens!=null&&(o.max_tokens=t.maxTokens),t?.temperature!=null&&(o.temperature=t.temperature),t?.tools&&t.tools.length>0&&(o.tools=t.tools.map(yt)),t?.maxReasoningTokens!=null&&(o.reasoning={max_tokens:t.maxReasoningTokens}),n&&(o.stream=!0,o.stream_options={include_usage:!0}),i&&Object.assign(o,i),t?.providerExtras&&Object.assign(o,t.providerExtras),o}function gt(e){return e.role==="tool"?{role:"tool",tool_call_id:e.toolCallId,content:e.content}:e.role==="assistant"&&e.toolCalls&&e.toolCalls.length>0?{role:"assistant",content:e.content||null,tool_calls:e.toolCalls.map(t=>({id:t.id,type:"function",function:{name:t.name,arguments:JSON.stringify(t.arguments)}}))}:{role:e.role,content:e.content}}function yt(e){return{type:"function",function:{name:e.name,description:e.description,parameters:e.parameters}}}function Q(e){let t={input:{regular:0},output:{regular:0},raw:e};if(!e)return t;let r=e.prompt_tokens??0,n=e.prompt_tokens_details?.cached_tokens??0;e.prompt_cache_hit_tokens!=null?(n=e.prompt_cache_hit_tokens,t.input.regular=e.prompt_cache_miss_tokens??Math.max(0,r-n)):t.input.regular=Math.max(0,r-n),n>0&&(t.input.cacheRead=n),e.prompt_tokens_details?.audio_tokens&&(t.input.audio=e.prompt_tokens_details.audio_tokens);let i=e.completion_tokens??0,a=e.completion_tokens_details?.reasoning_tokens??0;return t.output.regular=Math.max(0,i-a),a>0&&(t.output.reasoning=a),e.completion_tokens_details?.audio_tokens&&(t.output.audio=e.completion_tokens_details.audio_tokens),e.completion_tokens_details?.accepted_prediction_tokens&&(t.output.predictionAccepted=e.completion_tokens_details.accepted_prediction_tokens),e.completion_tokens_details?.rejected_prediction_tokens&&(t.output.predictionRejected=e.completion_tokens_details.rejected_prediction_tokens),t}function Ee(e,t,r){let n=e.choices[0],i=n?.message,a=i?.content??"",s=(i?.tool_calls??[]).map(o=>({id:o.id,name:o.function.name,arguments:ht(o.function.arguments)}));return{content:a,toolCalls:s.length>0?s:void 0,usage:Q(e.usage),finishReason:n?.finish_reason,latencyMs:t,model:e.model,provider:r}}function ht(e){try{let t=JSON.parse(e);return typeof t=="object"&&t!=null?t:{_raw:e}}catch{return{_raw:e}}}function Oe(e){let t=e.preset??"openai",r=mt[t],n=e.baseURL??r.baseURL,i=e.provider??r.provider,a=r.apiKeyEnv,s=e.apiKey??(a?globalThis.process?.env?.[a]:void 0);return{provider:i,baseURL:n,apiKey:s}}function bt(e){let{provider:t,baseURL:r,apiKey:n}=Oe(e),i=e.fetchImpl??fetch,a=t!=="ollama",s=()=>{let o={"content-type":"application/json",...e.headers??{}};if(a){if(!n)throw new Error(`openAICompatAdapter[${t}]: apiKey required for invoke/stream`);o.authorization=`Bearer ${n}`}return o};return{provider:t,model:e.model,async invoke(o,c){let u=G(o,c,e.model,!1,e.bodyExtras),l=h(),d=await i(`${r}/chat/completions`,{method:"POST",headers:s(),body:JSON.stringify(u),signal:c?.signal});if(!d.ok)throw await Ce(d,t);let p=await d.json(),m=Math.max(0,(h()-l)/1e6);return Ee(p,m,t)},async*stream(o,c){let u=G(o,c,e.model,!0,e.bodyExtras),l=await i(`${r}/chat/completions`,{method:"POST",headers:{...s(),accept:"text/event-stream"},body:JSON.stringify(u),signal:c?.signal});if(!l.ok)throw await Ce(l,t);if(!l.body)throw new Error(`openAICompatAdapter[${t}]: streaming response has no body`);let d,p;for await(let m of wt(l.body)){if(!m.data||m.data==="[DONE]")continue;let w;try{w=JSON.parse(m.data)}catch{continue}let g=w.choices;if(g){let f=g[0];if(f?.delta?.content&&(yield{type:"token",delta:f.delta.content}),f?.delta?.reasoning_content&&(yield{type:"thinking",delta:f.delta.reasoning_content}),f?.delta?.tool_calls)for(let y of f.delta.tool_calls)yield{type:"tool-call-delta",delta:{id:y.id,name:y.function?.name,argumentsDelta:y.function?.arguments}};f?.finish_reason&&(p=f.finish_reason)}w.usage&&(d=w.usage,yield{type:"usage",usage:Q(d)})}yield{type:"finish",reason:p??"stop"}}}}function kt(e){let t=e.sdk;if(!t)throw new Error("sdkBackedOpenAI: sdk instance required");let{provider:r}=Oe(e);return{provider:r,model:e.model,async invoke(n,i){let a=G(n,i,e.model,!1,e.bodyExtras),s=h(),o=await t.chat.completions.create(a,{signal:i?.signal}),c=Math.max(0,(h()-s)/1e6);return Ee(o,c,r)},async*stream(n,i){let a=G(n,i,e.model,!0,e.bodyExtras),s=await t.chat.completions.create(a,{signal:i?.signal}),o,c;for await(let u of s){let l=u.choices;if(l){let p=l[0];if(p?.delta?.content&&(yield{type:"token",delta:p.delta.content}),p?.delta?.reasoning_content&&(yield{type:"thinking",delta:p.delta.reasoning_content}),p?.delta?.tool_calls)for(let m of p.delta.tool_calls)yield{type:"tool-call-delta",delta:{id:m.id,name:m.function?.name,argumentsDelta:m.function?.arguments}};p?.finish_reason&&(c=p.finish_reason)}let d=u.usage;d&&(o=d,yield{type:"usage",usage:Q(d)})}yield{type:"finish",reason:c??"stop"}}}}async function*wt(e){let t=e.getReader(),r=new TextDecoder,n="";try{for(;;){let{done:i,value:a}=await t.read();if(i){n.length>0&&(yield ve(n));return}n+=r.decode(a,{stream:!0});let s=Me(n);for(;s!==null;){let o=n.slice(0,s.index);n=n.slice(s.index+s.length);let c=ve(o);(c.data||c.event)&&(yield c),s=Me(n)}}}finally{t.releaseLock()}}function ve(e){let t={},r=[];for(let n of e.split(`
20
- `)){let i=n.endsWith("\r")?n.slice(0,-1):n;if(!i||i.startsWith(":"))continue;let a=i.indexOf(":"),s=a===-1?i:i.slice(0,a),o=a===-1?"":i.slice(a+1).replace(/^ /,"");s==="data"?r.push(o):s==="event"?t.event=o:s==="id"&&(t.id=o)}return r.length>0&&(t.data=r.join(`
21
- `)),t}function Me(e){let t=e.indexOf(`\r
22
- \r
23
- `),r=e.indexOf(`
24
-
25
- `),n=null;return t!==-1&&(n={index:t,length:4}),r!==-1&&(n===null||r<n.index)&&(n={index:r,length:2}),n}async function Ce(e,t){let r;try{r=await e.text()}catch{r=""}let n=new Error(`${t} API ${e.status}: ${e.statusText}${r?` \u2014 ${r}`:""}`);return n.status=e.status,n.headers=e.headers,n}function Z(e){switch(e.provider){case"anthropic":{let t={apiKey:e.apiKey,model:e.model,baseURL:e.baseURL,headers:e.headers,sdk:e.sdk,fetchImpl:e.fetchImpl,...e.extras};return ae(t)}case"google":{let t={apiKey:e.apiKey,model:e.model,baseURL:e.baseURL,headers:e.headers,sdk:e.sdk,fetchImpl:e.fetchImpl,...e.extras};return Te(t)}case"dry-run":{let t={model:e.model,...e.extras};return K(t)}case"fallback":{let t={provider:e.provider,model:e.model,...e.extras};return Ae(t)}case"openai":case"openrouter":case"groq":case"ollama":case"deepseek":case"xai":{let t={preset:e.provider,apiKey:e.apiKey,model:e.model,baseURL:e.baseURL,headers:e.headers,bodyExtras:e.bodyExtras,sdk:e.sdk,fetchImpl:e.fetchImpl,...e.extras};return Se(t)}default:{let t=e.provider;throw new Error(`createAdapter: unknown provider: ${String(t)}`)}}}Pe();var $=class extends Error{name="AllTiersExhaustedError";skipped;failed;constructor(t){let r=[];t.failed.size>0&&r.push(`failed=[${[...t.failed.keys()].join(",")}]`),t.skipped.length>0&&r.push(`skipped=[${t.skipped.map(n=>`${n.name}(${n.reason})`).join(",")}]`),super(`All LLM adapter tiers exhausted: ${r.join(" ")}`),this.skipped=t.skipped,this.failed=t.failed}};function W(e,t={}){if(e.length===0)throw new RangeError("cascadingLlmAdapter: tiers must be non-empty");let r=e.map(i=>({name:i.name,adapter:i.adapter,filter:i.filter,breaker:i.breaker?"canExecute"in i.breaker?i.breaker:Ne(i.breaker):void 0})),n=t.streamRetryBeforeFirstChunk??!0;return{provider:"cascading",model:void 0,async invoke(i,a){let s=[],o=new Map;for(let u=0;u<r.length;u++){let l=r[u];if(l.filter&&!l.filter(i,a)){s.push({name:l.name,reason:"filter"});continue}if(l.breaker&&!l.breaker.canExecute()){s.push({name:l.name,reason:"breaker"});continue}try{let d=await Promise.resolve(l.adapter.invoke(i,a));return l.breaker?.recordSuccess(),{...d,metadata:{...d.metadata??{},tier:l.name}}}catch(d){o.set(l.name,d),l.breaker?.recordFailure(d);let p=r[u+1];p&&t.onFallback?.(l.name,p.name,d)}}let c={skipped:s,failed:o};throw t.onExhausted?.(c),new $(c)},async*stream(i,a){let s=[],o=new Map;for(let u=0;u<r.length;u++){let l=r[u];if(l.filter&&!l.filter(i,a)){s.push({name:l.name,reason:"filter"});continue}if(l.breaker&&!l.breaker.canExecute()){s.push({name:l.name,reason:"breaker"});continue}let d=!1;try{for await(let p of l.adapter.stream(i,a))d=!0,yield p;l.breaker?.recordSuccess();return}catch(p){if(o.set(l.name,p),l.breaker?.recordFailure(p),d||!n)throw p;let m=r[u+1];m&&t.onFallback?.(l.name,m.name,p)}}let c={skipped:s,failed:o};throw t.onExhausted?.(c),new $(c)}}}function xt(e){let t=[{name:"cloud",adapter:Z(e.cloud)}];return e.webllmModel&&t.push({name:"webllm",adapter:S({model:e.webllmModel})}),e.chromeNano!==!1&&t.push({name:"chrome-nano",adapter:C(),filter:(r,n)=>!n?.tools||n.tools.length===0}),W(t,e.cascade)}function Lt(e){let t=[{name:"ollama",adapter:Z({provider:"ollama",model:e.ollamaModel,baseURL:e.ollamaBaseURL})}];return e.webllmModel&&t.push({name:"webllm",adapter:S({model:e.webllmModel})}),e.chromeNano!==!1&&t.push({name:"chrome-nano",adapter:C(),filter:(r,n)=>!n?.tools||n.tools.length===0}),W(t,e.cascade)}function Rt(e){let t=[{name:"webllm",adapter:S({model:e.webllmModel})}];return e.chromeNano!==!1&&t.push({name:"chrome-nano",adapter:C(),filter:(r,n)=>!n?.tools||n.tools.length===0}),W(t,e.cascade)}0&&(module.exports={chromeNanoAdapter,cloudFirstPreset,localFirstPreset,offlinePreset,webllmAdapter});
8
+ `)}]});let i={};return t?.maxTokens!=null&&(i.maxOutputTokens=t.maxTokens),t?.temperature!=null&&(i.temperature=t.temperature),t?.maxReasoningTokens!=null&&(i.thinkingConfig={thinkingBudget:t.maxReasoningTokens}),Object.keys(i).length>0&&(s.generationConfig=i),t?.tools&&t.tools.length>0&&(s.tools=[{functionDeclarations:t.tools.map(xn)}]),t?.providerExtras&&Object.assign(s,t.providerExtras),s}function xn(e){return{name:e.name,description:e.description,parameters:e.parameters}}function Ue(e){let t={input:{regular:0},output:{regular:0},raw:e};if(!e)return t;let n=e.promptTokenCount??0,r=e.cachedContentTokenCount??0;if(t.input.regular=Math.max(0,n-r),r>0&&(t.input.cacheRead=r),e.toolUsePromptTokenCount&&(t.input.toolUse=e.toolUsePromptTokenCount),e.promptTokensDetails)for(let s of e.promptTokensDetails){let i=s.modality?.toLowerCase();i==="image"?t.input.image=(t.input.image??0)+s.tokenCount:i==="audio"?t.input.audio=(t.input.audio??0)+s.tokenCount:i==="video"&&(t.input.video=(t.input.video??0)+s.tokenCount)}return t.output.regular=e.candidatesTokenCount??0,e.thoughtsTokenCount&&(t.output.reasoning=e.thoughtsTokenCount),t}function Lt(e,t){let n=e.candidates?.[0],r=n?.content?.parts??[],s=[],i=[],a=0;for(let o of r)typeof o.text=="string"&&s.push(o.text),o.functionCall&&i.push({id:`${o.functionCall.name}-${a++}`,name:o.functionCall.name,arguments:o.functionCall.args??{}});return{content:s.join(""),toolCalls:i.length>0?i:void 0,usage:Ue(e.usageMetadata),finishReason:n?.finishReason,latencyMs:t,model:e.modelVersion,provider:"google"}}function _n(e){if(e.apiKey)return e.apiKey;let t=globalThis.process?.env;return t?.GOOGLE_API_KEY??t?.GEMINI_API_KEY}function Sn(e){let t=e.baseURL??"https://generativelanguage.googleapis.com/v1beta",n=e.fetchImpl??fetch,r=i=>{let a=i?.model??e.model;if(!a)throw new Error("googleAdapter: model must be set via options.model or invokeOpts.model");return a},s=()=>{let i=_n(e);if(!i)throw new Error("googleAdapter: apiKey required for invoke/stream");return`key=${encodeURIComponent(i)}`};return{provider:"google",model:e.model,async invoke(i,a){let o=r(a),c=ge(i,a),d=w(),l=`${t}/models/${encodeURIComponent(o)}:generateContent?${s()}`,u=await n(l,{method:"POST",headers:{"content-type":"application/json",...e.headers??{}},body:JSON.stringify(c),signal:a?.signal});if(!u.ok)throw await O(u,"Google");let p=await u.json(),f=Math.max(0,(w()-d)/1e6);return Lt(p,f)},async*stream(i,a){let o=r(a),c=ge(i,a),d=`${t}/models/${encodeURIComponent(o)}:streamGenerateContent?alt=sse&${s()}`,l=await n(d,{method:"POST",headers:{"content-type":"application/json",accept:"text/event-stream",...e.headers??{}},body:JSON.stringify(c),signal:a?.signal});if(!l.ok)throw await O(l,"Google");if(!l.body)throw new Error("googleAdapter: streaming response has no body");let u,p;for await(let f of K(l.body,{signal:a?.signal})){if(!f.data)continue;let y;try{y=JSON.parse(f.data)}catch{continue}let h=y.candidates?.[0];for(let m of h?.content?.parts??[])typeof m.text=="string"&&(m.thought?yield{type:"thinking",delta:m.text}:yield{type:"token",delta:m.text}),m.functionCall&&(yield{type:"tool-call-delta",delta:{name:m.functionCall.name,argumentsDelta:JSON.stringify(m.functionCall.args??{})}});h?.finishReason&&(p=h.finishReason),y.usageMetadata&&(u=y.usageMetadata)}u&&(yield{type:"usage",usage:Ue(u)}),yield{type:"finish",reason:p??"stop"}}}}function An(e){let t=e.sdk;if(!t)throw new Error("sdkBackedGoogle: sdk instance required");return{provider:"google",model:e.model,async invoke(n,r){let s=ge(n,r),i=r?.model??e.model;if(!i)throw new Error("googleAdapter: model required");let a=w(),o=await t.models.generateContent({...s,model:i},{signal:r?.signal}),c=Math.max(0,(w()-a)/1e6);return Lt(o,c)},async*stream(n,r){if(!t.models.generateContentStream)throw new Error("sdkBackedGoogle: SDK instance does not expose generateContentStream");let s=ge(n,r),i=r?.model??e.model;if(!i)throw new Error("googleAdapter: model required");let a,o;for await(let c of t.models.generateContentStream({...s,model:i},{signal:r?.signal})){let d=c.candidates?.[0];for(let l of d?.content?.parts??[])typeof l.text=="string"&&(l.thought?yield{type:"thinking",delta:l.text}:yield{type:"token",delta:l.text}),l.functionCall&&(yield{type:"tool-call-delta",delta:{name:l.functionCall.name,argumentsDelta:JSON.stringify(l.functionCall.args??{})}});d?.finishReason&&(o=d.finishReason),c.usageMetadata&&(a=c.usageMetadata)}a&&(yield{type:"usage",usage:Ue(a)}),yield{type:"finish",reason:o??"stop"}}}}L();var En={openai:{baseURL:"https://api.openai.com/v1",apiKeyEnv:"OPENAI_API_KEY",provider:"openai"},openrouter:{baseURL:"https://openrouter.ai/api/v1",apiKeyEnv:"OPENROUTER_API_KEY",provider:"openrouter"},groq:{baseURL:"https://api.groq.com/openai/v1",apiKeyEnv:"GROQ_API_KEY",provider:"groq"},ollama:{baseURL:"http://localhost:11434/v1",provider:"ollama"},deepseek:{baseURL:"https://api.deepseek.com/v1",apiKeyEnv:"DEEPSEEK_API_KEY",provider:"deepseek"},xai:{baseURL:"https://api.x.ai/v1",apiKeyEnv:"XAI_API_KEY",provider:"xai"}};function Ot(e={}){return e.sdk?Ln(e):Cn(e)}function he(e,t,n,r,s){let i=t?.model??n;if(!i)throw new Error("openAICompatAdapter: model must be set via options.model or invokeOpts.model");let a=e.map(Rn);t?.systemPrompt&&!e.some(c=>c.role==="system")&&a.unshift({role:"system",content:t.systemPrompt});let o={model:i,messages:a};return t?.maxTokens!=null&&(o.max_tokens=t.maxTokens),t?.temperature!=null&&(o.temperature=t.temperature),t?.tools&&t.tools.length>0&&(o.tools=t.tools.map(Mn)),t?.maxReasoningTokens!=null&&(o.reasoning={max_tokens:t.maxReasoningTokens}),r&&(o.stream=!0,o.stream_options={include_usage:!0}),s&&Object.assign(o,s),t?.providerExtras&&Object.assign(o,t.providerExtras),o}function Rn(e){return e.role==="tool"?{role:"tool",tool_call_id:e.toolCallId,content:e.content}:e.role==="assistant"&&e.toolCalls&&e.toolCalls.length>0?{role:"assistant",content:e.content||null,tool_calls:e.toolCalls.map(t=>({id:t.id,type:"function",function:{name:t.name,arguments:JSON.stringify(t.arguments)}}))}:{role:e.role,content:e.content}}function Mn(e){return{type:"function",function:{name:e.name,description:e.description,parameters:e.parameters}}}function Be(e){let t={input:{regular:0},output:{regular:0},raw:e};if(!e)return t;let n=e.prompt_tokens??0,r=e.prompt_tokens_details?.cached_tokens??0;e.prompt_cache_hit_tokens!=null?(r=e.prompt_cache_hit_tokens,t.input.regular=e.prompt_cache_miss_tokens??Math.max(0,n-r)):t.input.regular=Math.max(0,n-r),r>0&&(t.input.cacheRead=r),e.prompt_tokens_details?.audio_tokens&&(t.input.audio=e.prompt_tokens_details.audio_tokens);let s=e.completion_tokens??0,i=e.completion_tokens_details?.reasoning_tokens??0;return t.output.regular=Math.max(0,s-i),i>0&&(t.output.reasoning=i),e.completion_tokens_details?.audio_tokens&&(t.output.audio=e.completion_tokens_details.audio_tokens),e.completion_tokens_details?.accepted_prediction_tokens&&(t.output.predictionAccepted=e.completion_tokens_details.accepted_prediction_tokens),e.completion_tokens_details?.rejected_prediction_tokens&&(t.output.predictionRejected=e.completion_tokens_details.rejected_prediction_tokens),t}function Pt(e,t,n){let r=e.choices[0],s=r?.message,i=s?.content??"",a=(s?.tool_calls??[]).map(o=>({id:o.id,name:o.function.name,arguments:Nn(o.function.arguments)}));return{content:i,toolCalls:a.length>0?a:void 0,usage:Be(e.usage),finishReason:r?.finish_reason,latencyMs:t,model:e.model,provider:n}}function Nn(e){try{let t=JSON.parse(e);return typeof t=="object"&&t!=null?t:{_raw:e}}catch{return{_raw:e}}}function It(e){let t=e.preset??"openai",n=En[t],r=e.baseURL??n.baseURL,s=e.provider??n.provider,i=n.apiKeyEnv,a=e.apiKey??(i?globalThis.process?.env?.[i]:void 0);return{provider:s,baseURL:r,apiKey:a}}function Cn(e){let{provider:t,baseURL:n,apiKey:r}=It(e),s=e.fetchImpl??fetch,i=t!=="ollama",a=()=>{let o={"content-type":"application/json",...e.headers??{}};if(i){if(!r)throw new Error(`openAICompatAdapter[${t}]: apiKey required for invoke/stream`);o.authorization=`Bearer ${r}`}return o};return{provider:t,model:e.model,async invoke(o,c){let d=he(o,c,e.model,!1,e.bodyExtras),l=w(),u=await s(`${n}/chat/completions`,{method:"POST",headers:a(),body:JSON.stringify(d),signal:c?.signal});if(!u.ok)throw await O(u,t);let p=await u.json(),f=Math.max(0,(w()-l)/1e6);return Pt(p,f,t)},async*stream(o,c){let d=he(o,c,e.model,!0,e.bodyExtras),l=await s(`${n}/chat/completions`,{method:"POST",headers:{...a(),accept:"text/event-stream"},body:JSON.stringify(d),signal:c?.signal});if(!l.ok)throw await O(l,t);if(!l.body)throw new Error(`openAICompatAdapter[${t}]: streaming response has no body`);let u,p;for await(let f of K(l.body,{signal:c?.signal})){if(!f.data||f.data==="[DONE]")continue;let y;try{y=JSON.parse(f.data)}catch{continue}let h=y.choices;if(h){let m=h[0];if(m?.delta?.content&&(yield{type:"token",delta:m.delta.content}),m?.delta?.reasoning_content&&(yield{type:"thinking",delta:m.delta.reasoning_content}),m?.delta?.tool_calls)for(let g of m.delta.tool_calls)yield{type:"tool-call-delta",delta:{id:g.id,name:g.function?.name,argumentsDelta:g.function?.arguments}};m?.finish_reason&&(p=m.finish_reason)}y.usage&&(u=y.usage,yield{type:"usage",usage:Be(u)})}yield{type:"finish",reason:p??"stop"}}}}function Ln(e){let t=e.sdk;if(!t)throw new Error("sdkBackedOpenAI: sdk instance required");let{provider:n}=It(e);return{provider:n,model:e.model,async invoke(r,s){let i=he(r,s,e.model,!1,e.bodyExtras),a=w(),o=await t.chat.completions.create(i,{signal:s?.signal}),c=Math.max(0,(w()-a)/1e6);return Pt(o,c,n)},async*stream(r,s){let i=he(r,s,e.model,!0,e.bodyExtras),a=await t.chat.completions.create(i,{signal:s?.signal}),o,c;for await(let d of a){let l=d.choices;if(l){let p=l[0];if(p?.delta?.content&&(yield{type:"token",delta:p.delta.content}),p?.delta?.reasoning_content&&(yield{type:"thinking",delta:p.delta.reasoning_content}),p?.delta?.tool_calls)for(let f of p.delta.tool_calls)yield{type:"tool-call-delta",delta:{id:f.id,name:f.function?.name,argumentsDelta:f.function?.arguments}};p?.finish_reason&&(c=p.finish_reason)}let u=d.usage;u&&(o=u,yield{type:"usage",usage:Be(u)})}yield{type:"finish",reason:c??"stop"}}}}function He(e){switch(e.provider){case"anthropic":{let t={apiKey:e.apiKey,model:e.model,baseURL:e.baseURL,headers:e.headers,sdk:e.sdk,fetchImpl:e.fetchImpl,...e.extras};return yt(t)}case"google":{let t={apiKey:e.apiKey,model:e.model,baseURL:e.baseURL,headers:e.headers,sdk:e.sdk,fetchImpl:e.fetchImpl,...e.extras};return Ct(t)}case"dry-run":{let t={model:e.model,...e.extras};return pe(t)}case"fallback":{let t={provider:e.provider,model:e.model,...e.extras};return Nt(t)}case"openai":case"openrouter":case"groq":case"ollama":case"deepseek":case"xai":{let t={preset:e.provider,apiKey:e.apiKey,model:e.model,baseURL:e.baseURL,headers:e.headers,bodyExtras:e.bodyExtras,sdk:e.sdk,fetchImpl:e.fetchImpl,...e.extras};return Ot(t)}default:{let t=e.provider;throw new Error(`createAdapter: unknown provider: ${String(t)}`)}}}ht();ce();var ye=class extends Error{name="AllTiersExhaustedError";skipped;failed;constructor(t){let n=[];t.failed.size>0&&n.push(`failed=[${[...t.failed.keys()].join(",")}]`),t.skipped.length>0&&n.push(`skipped=[${t.skipped.map(r=>`${r.name}(${r.reason})`).join(",")}]`),super(`All LLM adapter tiers exhausted: ${n.join(" ")}`),this.skipped=t.skipped,this.failed=t.failed}};function be(e,t={}){if(e.length===0)throw new RangeError("cascadingLlmAdapter: tiers must be non-empty");let n=e.map(i=>({name:i.name,adapter:i.adapter,filter:i.filter,breaker:i.breaker?"canExecute"in i.breaker?i.breaker:gt(i.breaker):void 0})),r=t.streamRetryBeforeFirstChunk??!0,s={provider:"cascading",model:void 0,async invoke(i,a){let o=[],c=new Map;for(let l=0;l<n.length;l++){let u=n[l];if(u.filter&&!u.filter(i,a)){o.push({name:u.name,reason:"filter"});continue}if(u.breaker&&!u.breaker.canExecute()){o.push({name:u.name,reason:"breaker"});continue}try{let p=await G(Y(u.adapter.invoke(i,a)));return u.breaker?.recordSuccess(),{...p,metadata:{...p.metadata??{},tier:u.name}}}catch(p){c.set(u.name,p),u.breaker?.recordFailure(p);let f=n[l+1];f&&t.onFallback?.(u.name,f.name,p)}}let d={skipped:o,failed:c};throw t.onExhausted?.(d),new ye(d)},async*stream(i,a){let o=[],c=new Map;for(let l=0;l<n.length;l++){let u=n[l];if(u.filter&&!u.filter(i,a)){o.push({name:u.name,reason:"filter"});continue}if(u.breaker&&!u.breaker.canExecute()){o.push({name:u.name,reason:"breaker"});continue}let p=!1;try{for await(let f of u.adapter.stream(i,a))p=!0,yield f;u.breaker?.recordSuccess();return}catch(f){if(c.set(u.name,f),u.breaker?.recordFailure(f),p||!r)throw f;let y=n[l+1];y&&t.onFallback?.(u.name,y.name,f)}}let d={skipped:o,failed:c};throw t.onExhausted?.(d),new ye(d)}};return me(s,`cascade[${n.map(i=>i.name).join(",")}]`),s}function On(e){let t=[{name:"cloud",adapter:He(e.cloud)}];return e.webllmModel&&t.push({name:"webllm",adapter:q({model:e.webllmModel})}),e.chromeNano!==!1&&t.push({name:"chrome-nano",adapter:z(),filter:(n,r)=>!r?.tools||r.tools.length===0}),be(t,e.cascade)}function Pn(e){let t=[{name:"ollama",adapter:He({provider:"ollama",model:e.ollamaModel,baseURL:e.ollamaBaseURL})}];return e.webllmModel&&t.push({name:"webllm",adapter:q({model:e.webllmModel})}),e.chromeNano!==!1&&t.push({name:"chrome-nano",adapter:z(),filter:(n,r)=>!r?.tools||r.tools.length===0}),be(t,e.cascade)}function In(e){let t=[{name:"webllm",adapter:q({model:e.webllmModel})}];return e.chromeNano!==!1&&t.push({name:"chrome-nano",adapter:z(),filter:(n,r)=>!r?.tools||r.tools.length===0}),be(t,e.cascade)}0&&(module.exports={chromeNanoAdapter,cloudFirstPreset,localFirstPreset,offlinePreset,webllmAdapter});
@@ -1,7 +1,7 @@
1
- import { L as LLMAdapter } from '../../types-O3GzJY2U.cjs';
2
- import { c as createAdapter, C as CascadingLlmAdapterOptions } from '../../cascading-dNCtjW8j.cjs';
3
- import '../../extra/sources.cjs';
1
+ import { L as LLMAdapter } from '../../types-BgMqbc7N.cjs';
2
+ import { c as createAdapter, C as CascadingLlmAdapterOptions } from '../../cascading-BfQmSmjU.cjs';
4
3
  import '../../node-BVV7G1bq.cjs';
4
+ import '../../extra/sources.cjs';
5
5
  import '../../resilience-Q6Bt_7y0.cjs';
6
6
 
7
7
  /**
@@ -1,7 +1,7 @@
1
- import { L as LLMAdapter } from '../../types-u64Ose53.js';
2
- import { c as createAdapter, C as CascadingLlmAdapterOptions } from '../../cascading-BszPheHD.js';
3
- import '../../extra/sources.js';
1
+ import { L as LLMAdapter } from '../../types-CdfO2QTt.js';
2
+ import { c as createAdapter, C as CascadingLlmAdapterOptions } from '../../cascading-D3sapjue.js';
4
3
  import '../../node-BVV7G1bq.js';
4
+ import '../../extra/sources.js';
5
5
  import '../../resilience-CludlzcP.js';
6
6
 
7
7
  /**
@@ -1,3 +1,3 @@
1
- import{d as y,f}from"../../chunk-NSG4C6BF.js";import"../../chunk-7JDLFI6N.js";import"../../chunk-OL33ZI6R.js";import"../../chunk-ISCENNXS.js";import"../../chunk-ESMPEKEV.js";import"../../chunk-I6VIH3VA.js";import"../../chunk-4VVTGLXJ.js";import"../../chunk-KASHOCF5.js";import{o as p}from"../../chunk-W4TSQ6RJ.js";import"../../chunk-CK2E7BTU.js";import"../../chunk-QYADASLV.js";function L(){let e=new Error("aborted");return e.name="AbortError",e}function h(e={}){let r=e.streamMode??"accumulated",d=e.navigatorOverride??globalThis.navigator,i=()=>{let a=d?.ai;if(!a?.languageModel)throw new Error("chromeNanoAdapter: Chrome AI languageModel not available (requires Chrome 131+ with flag/OT).");return a},g=async a=>i().languageModel.create({systemPrompt:a?.systemPrompt??e.systemPrompt,temperature:a?.temperature??e.temperature,topK:e.topK,signal:a?.signal}),l=a=>{let n=[];for(let o of a)o.role!=="system"&&n.push(`${o.role}: ${o.content}`);return n.join(`
1
+ import{d as y,f}from"../../chunk-PNTBXOQ6.js";import"../../chunk-FTA5TB2A.js";import"../../chunk-Y26UN6J5.js";import"../../chunk-RWGJQQLT.js";import"../../chunk-4VXL3UZK.js";import"../../chunk-SGS4OJGS.js";import"../../chunk-ESMPEKEV.js";import"../../chunk-I6VIH3VA.js";import"../../chunk-WQ7I7JVU.js";import"../../chunk-4VVTGLXJ.js";import"../../chunk-UMH3HSP7.js";import{o as p}from"../../chunk-7AJKUA36.js";import"../../chunk-CK2E7BTU.js";import"../../chunk-QYADASLV.js";function L(){let e=new Error("aborted");return e.name="AbortError",e}function h(e={}){let r=e.streamMode??"accumulated",d=e.navigatorOverride??globalThis.navigator,i=()=>{let a=d?.ai;if(!a?.languageModel)throw new Error("chromeNanoAdapter: Chrome AI languageModel not available (requires Chrome 131+ with flag/OT).");return a},g=async a=>i().languageModel.create({systemPrompt:a?.systemPrompt??e.systemPrompt,temperature:a?.temperature??e.temperature,topK:e.topK,signal:a?.signal}),l=a=>{let n=[];for(let o of a)o.role!=="system"&&n.push(`${o.role}: ${o.content}`);return n.join(`
2
2
 
3
3
  `)},t=()=>({input:{regular:0},output:{regular:0}});return{provider:"chrome-nano",model:"chrome-nano",async invoke(a,n){let o=await g(n);try{let c=l(a),s=p(),m=await o.prompt(c,{signal:n?.signal}),u=Math.max(0,(p()-s)/1e6);return{content:m,usage:t(),finishReason:"stop",latencyMs:u,model:"chrome-nano",provider:"chrome-nano"}}finally{o.destroy?.()}},async*stream(a,n){let o=await g(n);try{let c=l(a);if(r==="delta")for await(let s of o.promptStreaming(c,{signal:n?.signal})){if(n?.signal?.aborted)throw L();s&&(yield{type:"token",delta:s})}else{let s="";for await(let m of o.promptStreaming(c,{signal:n?.signal})){if(n?.signal?.aborted)throw L();let u=m.startsWith(s)?m.slice(s.length):m;s=m,u&&(yield{type:"token",delta:u})}}yield{type:"usage",usage:t()},yield{type:"finish",reason:"stop"}}finally{o.destroy?.()}}}}function A(){let e=new Error("aborted");return e.name="AbortError",e}function b(e){let r=e.engine,d=async()=>{if(r)return r;if(!w(e.navigatorOverride))throw new Error("webllmAdapter: WebGPU not available in this environment");let t=(await import("@mlc-ai/web-llm").catch(()=>{throw new Error("webllmAdapter: @mlc-ai/web-llm not installed. Add it as a peer dependency or pass opts.engine.")})).CreateMLCEngine;if(!t)throw new Error("webllmAdapter: @mlc-ai/web-llm missing CreateMLCEngine export");return r=await t(e.model,{initProgressCallback:e.initProgressCallback}),r},i=(l,t)=>{let a=[];t?.systemPrompt&&a.push({role:"system",content:t.systemPrompt});for(let n of l)a.push({role:n.role==="tool"?"user":n.role,content:n.content});return a},g=l=>({input:{regular:l?.prompt_tokens??0},output:{regular:l?.completion_tokens??0},raw:l});return{provider:"webllm",model:e.model,async invoke(l,t){let a=await d(),n=p(),o=await a.chat.completions.create({model:t?.model??e.model,messages:i(l,t),max_tokens:t?.maxTokens,temperature:t?.temperature},{signal:t?.signal}),c=Math.max(0,(p()-n)/1e6),s=o.choices?.[0];return{content:s?.message?.content??"",usage:g(o.usage),finishReason:s?.finish_reason,latencyMs:c,model:e.model,provider:"webllm"}},async*stream(l,t){let n=await(await d()).chat.completions.create({model:t?.model??e.model,messages:i(l,t),max_tokens:t?.maxTokens,temperature:t?.temperature,stream:!0},{signal:t?.signal}),o,c;for await(let s of n){if(t?.signal?.aborted)throw A();let m=s.choices?.[0];m?.delta?.content&&(yield{type:"token",delta:m.delta.content}),m?.finish_reason&&(c=m.finish_reason),s.usage&&(o=s.usage)}o&&(yield{type:"usage",usage:g(o)}),yield{type:"finish",reason:c??"stop"}}}}function w(e){let r=e??globalThis.navigator;return!!(r&&"gpu"in r&&r.gpu)}function N(e){let r=[{name:"cloud",adapter:y(e.cloud)}];return e.webllmModel&&r.push({name:"webllm",adapter:b({model:e.webllmModel})}),e.chromeNano!==!1&&r.push({name:"chrome-nano",adapter:h(),filter:(d,i)=>!i?.tools||i.tools.length===0}),f(r,e.cascade)}function S(e){let r=[{name:"ollama",adapter:y({provider:"ollama",model:e.ollamaModel,baseURL:e.ollamaBaseURL})}];return e.webllmModel&&r.push({name:"webllm",adapter:b({model:e.webllmModel})}),e.chromeNano!==!1&&r.push({name:"chrome-nano",adapter:h(),filter:(d,i)=>!i?.tools||i.tools.length===0}),f(r,e.cascade)}function R(e){let r=[{name:"webllm",adapter:b({model:e.webllmModel})}];return e.chromeNano!==!1&&r.push({name:"chrome-nano",adapter:h(),filter:(d,i)=>!i?.tools||i.tools.length===0}),f(r,e.cascade)}export{h as chromeNanoAdapter,N as cloudFirstPreset,S as localFirstPreset,R as offlinePreset,b as webllmAdapter};