@arcgis/ai-components 5.0.0-next.141 → 5.0.0-next.144

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 (284) hide show
  1. package/dist/cdn/{H3CVMHP7.js → 2GMCG6SX.js} +1 -3
  2. package/dist/cdn/{XIQFWAFC.js → 2LSVWAZO.js} +1 -3
  3. package/dist/cdn/{EPU4I3W4.js → 3YA7AYJB.js} +2 -4
  4. package/dist/cdn/6XEDIXV6.js +2 -0
  5. package/dist/cdn/{2IKIZBUH.js → ASR4DPYD.js} +2 -4
  6. package/dist/cdn/{XBO2KI27.js → BN4IYD74.js} +3 -5
  7. package/dist/cdn/{JRPAEWR6.js → CEXAIP2B.js} +2 -4
  8. package/dist/cdn/{WMC3UR5F.js → COWIXD4Q.js} +73 -71
  9. package/dist/cdn/{GERMHSWI.js → CSFLVW7O.js} +2 -4
  10. package/dist/cdn/{G3K3GRB2.js → CSKRXBVL.js} +3 -5
  11. package/dist/cdn/CYROVXBC.js +2 -0
  12. package/dist/cdn/DCXWRVNH.js +2 -0
  13. package/dist/cdn/{SB67G4Q4.js → EFU7HGPY.js} +2 -4
  14. package/dist/cdn/{LLYWEDKO.js → EU7GHH2Y.js} +2 -4
  15. package/dist/cdn/{W4CBQGNN.js → G65WIFNI.js} +2 -4
  16. package/dist/cdn/{G6BVI2XX.js → GXFH7ZNV.js} +2 -4
  17. package/dist/cdn/{SCG7VRZ4.js → IFER6W2B.js} +1 -3
  18. package/dist/cdn/{SEVNR22P.js → IMPD5HA4.js} +2 -4
  19. package/dist/cdn/{MPRS2EHZ.js → IZ4NSOIH.js} +2 -4
  20. package/dist/cdn/JPUY3X54.js +2 -0
  21. package/dist/cdn/{XQLOMET4.js → JVPRUGML.js} +2 -4
  22. package/dist/cdn/{BU5VWLVE.js → KRDVOF7K.js} +2 -4
  23. package/dist/cdn/{IPYRSZ5V.js → LDS4EYQM.js} +2 -4
  24. package/dist/cdn/{7YKK77E7.js → LSDCO6AG.js} +2 -4
  25. package/dist/cdn/M32BWJ4D.js +14 -0
  26. package/dist/cdn/{I2UQJD5X.js → MZPFEXP3.js} +2 -4
  27. package/dist/cdn/{T2J3AABV.js → NRKOPZOT.js} +2 -4
  28. package/dist/cdn/{5HRRKEE4.js → OEF6YVL2.js} +2 -4
  29. package/dist/cdn/OV52XKSU.js +2 -0
  30. package/dist/cdn/QJ3OZMLS.js +2 -0
  31. package/dist/cdn/{VV7LNFJC.js → QWJL7VTJ.js} +49 -51
  32. package/dist/cdn/{TJDDZDQ4.js → QWUKKFEV.js} +2 -4
  33. package/dist/cdn/RPD4TRBP.js +2 -0
  34. package/dist/cdn/{JPTOZPR4.js → TBTPT64L.js} +2 -4
  35. package/dist/cdn/{YCG6EVNI.js → U3AQJYZ7.js} +2 -4
  36. package/dist/cdn/{K7MLZAMJ.js → WACZ5XRA.js} +2 -4
  37. package/dist/cdn/{IOV4MOIL.js → WE5QPXDZ.js} +2 -4
  38. package/dist/cdn/WZKKSDIC.js +2 -0
  39. package/dist/cdn/{IJ45EDHD.js → XOLWLHTD.js} +2 -4
  40. package/dist/cdn/{F6UDKJ6F.js → Y4325EIX.js} +2 -4
  41. package/dist/cdn/YRUSAZLS.js +2 -0
  42. package/dist/cdn/assets/assistant/t9n/messages.ar.json +1 -0
  43. package/dist/cdn/assets/assistant/t9n/messages.bg.json +1 -0
  44. package/dist/cdn/assets/assistant/t9n/messages.bs.json +1 -0
  45. package/dist/cdn/assets/assistant/t9n/messages.ca.json +1 -0
  46. package/dist/cdn/assets/assistant/t9n/messages.cs.json +1 -0
  47. package/dist/cdn/assets/assistant/t9n/messages.da.json +1 -0
  48. package/dist/cdn/assets/assistant/t9n/messages.de.json +1 -0
  49. package/dist/cdn/assets/assistant/t9n/messages.el.json +1 -0
  50. package/dist/cdn/assets/assistant/t9n/messages.es.json +1 -0
  51. package/dist/cdn/assets/assistant/t9n/messages.et.json +1 -0
  52. package/dist/cdn/assets/assistant/t9n/messages.fi.json +1 -0
  53. package/dist/cdn/assets/assistant/t9n/messages.fr.json +1 -0
  54. package/dist/cdn/assets/assistant/t9n/messages.he.json +1 -0
  55. package/dist/cdn/assets/assistant/t9n/messages.hr.json +1 -0
  56. package/dist/cdn/assets/assistant/t9n/messages.hu.json +1 -0
  57. package/dist/cdn/assets/assistant/t9n/messages.id.json +1 -0
  58. package/dist/cdn/assets/assistant/t9n/messages.it.json +1 -0
  59. package/dist/cdn/assets/assistant/t9n/messages.ja.json +1 -0
  60. package/dist/cdn/assets/assistant/t9n/messages.ko.json +1 -0
  61. package/dist/cdn/assets/assistant/t9n/messages.lt.json +1 -0
  62. package/dist/cdn/assets/assistant/t9n/messages.lv.json +1 -0
  63. package/dist/cdn/assets/assistant/t9n/messages.nl.json +1 -0
  64. package/dist/cdn/assets/assistant/t9n/messages.no.json +1 -0
  65. package/dist/cdn/assets/assistant/t9n/messages.pl.json +1 -0
  66. package/dist/cdn/assets/assistant/t9n/messages.pt-BR.json +1 -0
  67. package/dist/cdn/assets/assistant/t9n/messages.pt-PT.json +1 -0
  68. package/dist/cdn/assets/assistant/t9n/messages.ro.json +1 -0
  69. package/dist/cdn/assets/assistant/t9n/messages.ru.json +1 -0
  70. package/dist/cdn/assets/assistant/t9n/messages.sk.json +1 -0
  71. package/dist/cdn/assets/assistant/t9n/messages.sl.json +1 -0
  72. package/dist/cdn/assets/assistant/t9n/messages.sr.json +1 -0
  73. package/dist/cdn/assets/assistant/t9n/messages.sv.json +1 -0
  74. package/dist/cdn/assets/assistant/t9n/messages.th.json +1 -0
  75. package/dist/cdn/assets/assistant/t9n/messages.tr.json +1 -0
  76. package/dist/cdn/assets/assistant/t9n/messages.uk.json +1 -0
  77. package/dist/cdn/assets/assistant/t9n/messages.vi.json +1 -0
  78. package/dist/cdn/assets/assistant/t9n/messages.zh-CN.json +1 -0
  79. package/dist/cdn/assets/assistant/t9n/messages.zh-HK.json +1 -0
  80. package/dist/cdn/assets/assistant/t9n/messages.zh-TW.json +1 -0
  81. package/dist/cdn/assets/assistant-chat-card/t9n/messages.ar.json +1 -0
  82. package/dist/cdn/assets/assistant-chat-card/t9n/messages.bg.json +1 -0
  83. package/dist/cdn/assets/assistant-chat-card/t9n/messages.bs.json +1 -0
  84. package/dist/cdn/assets/assistant-chat-card/t9n/messages.ca.json +1 -0
  85. package/dist/cdn/assets/assistant-chat-card/t9n/messages.cs.json +1 -0
  86. package/dist/cdn/assets/assistant-chat-card/t9n/messages.da.json +1 -0
  87. package/dist/cdn/assets/assistant-chat-card/t9n/messages.de.json +1 -0
  88. package/dist/cdn/assets/assistant-chat-card/t9n/messages.el.json +1 -0
  89. package/dist/cdn/assets/assistant-chat-card/t9n/messages.es.json +1 -0
  90. package/dist/cdn/assets/assistant-chat-card/t9n/messages.et.json +1 -0
  91. package/dist/cdn/assets/assistant-chat-card/t9n/messages.fi.json +1 -0
  92. package/dist/cdn/assets/assistant-chat-card/t9n/messages.fr.json +1 -0
  93. package/dist/cdn/assets/assistant-chat-card/t9n/messages.he.json +1 -0
  94. package/dist/cdn/assets/assistant-chat-card/t9n/messages.hr.json +1 -0
  95. package/dist/cdn/assets/assistant-chat-card/t9n/messages.hu.json +1 -0
  96. package/dist/cdn/assets/assistant-chat-card/t9n/messages.id.json +1 -0
  97. package/dist/cdn/assets/assistant-chat-card/t9n/messages.it.json +1 -0
  98. package/dist/cdn/assets/assistant-chat-card/t9n/messages.ja.json +1 -0
  99. package/dist/cdn/assets/assistant-chat-card/t9n/messages.ko.json +1 -0
  100. package/dist/cdn/assets/assistant-chat-card/t9n/messages.lt.json +1 -0
  101. package/dist/cdn/assets/assistant-chat-card/t9n/messages.lv.json +1 -0
  102. package/dist/cdn/assets/assistant-chat-card/t9n/messages.nl.json +1 -0
  103. package/dist/cdn/assets/assistant-chat-card/t9n/messages.no.json +1 -0
  104. package/dist/cdn/assets/assistant-chat-card/t9n/messages.pl.json +1 -0
  105. package/dist/cdn/assets/assistant-chat-card/t9n/messages.pt-BR.json +1 -0
  106. package/dist/cdn/assets/assistant-chat-card/t9n/messages.pt-PT.json +1 -0
  107. package/dist/cdn/assets/assistant-chat-card/t9n/messages.ro.json +1 -0
  108. package/dist/cdn/assets/assistant-chat-card/t9n/messages.ru.json +1 -0
  109. package/dist/cdn/assets/assistant-chat-card/t9n/messages.sk.json +1 -0
  110. package/dist/cdn/assets/assistant-chat-card/t9n/messages.sl.json +1 -0
  111. package/dist/cdn/assets/assistant-chat-card/t9n/messages.sr.json +1 -0
  112. package/dist/cdn/assets/assistant-chat-card/t9n/messages.sv.json +1 -0
  113. package/dist/cdn/assets/assistant-chat-card/t9n/messages.th.json +1 -0
  114. package/dist/cdn/assets/assistant-chat-card/t9n/messages.tr.json +1 -0
  115. package/dist/cdn/assets/assistant-chat-card/t9n/messages.uk.json +1 -0
  116. package/dist/cdn/assets/assistant-chat-card/t9n/messages.vi.json +1 -0
  117. package/dist/cdn/assets/assistant-chat-card/t9n/messages.zh-CN.json +1 -0
  118. package/dist/cdn/assets/assistant-chat-card/t9n/messages.zh-HK.json +1 -0
  119. package/dist/cdn/assets/assistant-chat-card/t9n/messages.zh-TW.json +1 -0
  120. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.ar.json +1 -0
  121. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.bg.json +1 -0
  122. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.bs.json +1 -0
  123. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.ca.json +1 -0
  124. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.cs.json +1 -0
  125. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.da.json +1 -0
  126. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.de.json +1 -0
  127. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.el.json +1 -0
  128. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.es.json +1 -0
  129. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.et.json +1 -0
  130. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.fi.json +1 -0
  131. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.fr.json +1 -0
  132. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.he.json +1 -0
  133. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.hr.json +1 -0
  134. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.hu.json +1 -0
  135. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.id.json +1 -0
  136. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.it.json +1 -0
  137. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.ja.json +1 -0
  138. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.ko.json +1 -0
  139. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.lt.json +1 -0
  140. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.lv.json +1 -0
  141. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.nl.json +1 -0
  142. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.no.json +1 -0
  143. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.pl.json +1 -0
  144. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.pt-BR.json +1 -0
  145. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.pt-PT.json +1 -0
  146. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.ro.json +1 -0
  147. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.ru.json +1 -0
  148. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.sk.json +1 -0
  149. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.sl.json +1 -0
  150. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.sr.json +1 -0
  151. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.sv.json +1 -0
  152. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.th.json +1 -0
  153. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.tr.json +1 -0
  154. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.uk.json +1 -0
  155. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.vi.json +1 -0
  156. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.zh-CN.json +1 -0
  157. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.zh-HK.json +1 -0
  158. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.zh-TW.json +1 -0
  159. package/dist/cdn/assets/assistant-interrupt/t9n/messages.ar.json +1 -0
  160. package/dist/cdn/assets/assistant-interrupt/t9n/messages.bg.json +1 -0
  161. package/dist/cdn/assets/assistant-interrupt/t9n/messages.bs.json +1 -0
  162. package/dist/cdn/assets/assistant-interrupt/t9n/messages.ca.json +1 -0
  163. package/dist/cdn/assets/assistant-interrupt/t9n/messages.cs.json +1 -0
  164. package/dist/cdn/assets/assistant-interrupt/t9n/messages.da.json +1 -0
  165. package/dist/cdn/assets/assistant-interrupt/t9n/messages.de.json +1 -0
  166. package/dist/cdn/assets/assistant-interrupt/t9n/messages.el.json +1 -0
  167. package/dist/cdn/assets/assistant-interrupt/t9n/messages.es.json +1 -0
  168. package/dist/cdn/assets/assistant-interrupt/t9n/messages.et.json +1 -0
  169. package/dist/cdn/assets/assistant-interrupt/t9n/messages.fi.json +1 -0
  170. package/dist/cdn/assets/assistant-interrupt/t9n/messages.fr.json +1 -0
  171. package/dist/cdn/assets/assistant-interrupt/t9n/messages.he.json +1 -0
  172. package/dist/cdn/assets/assistant-interrupt/t9n/messages.hr.json +1 -0
  173. package/dist/cdn/assets/assistant-interrupt/t9n/messages.hu.json +1 -0
  174. package/dist/cdn/assets/assistant-interrupt/t9n/messages.id.json +1 -0
  175. package/dist/cdn/assets/assistant-interrupt/t9n/messages.it.json +1 -0
  176. package/dist/cdn/assets/assistant-interrupt/t9n/messages.ja.json +1 -0
  177. package/dist/cdn/assets/assistant-interrupt/t9n/messages.ko.json +1 -0
  178. package/dist/cdn/assets/assistant-interrupt/t9n/messages.lt.json +1 -0
  179. package/dist/cdn/assets/assistant-interrupt/t9n/messages.lv.json +1 -0
  180. package/dist/cdn/assets/assistant-interrupt/t9n/messages.nl.json +1 -0
  181. package/dist/cdn/assets/assistant-interrupt/t9n/messages.no.json +1 -0
  182. package/dist/cdn/assets/assistant-interrupt/t9n/messages.pl.json +1 -0
  183. package/dist/cdn/assets/assistant-interrupt/t9n/messages.pt-BR.json +1 -0
  184. package/dist/cdn/assets/assistant-interrupt/t9n/messages.pt-PT.json +1 -0
  185. package/dist/cdn/assets/assistant-interrupt/t9n/messages.ro.json +1 -0
  186. package/dist/cdn/assets/assistant-interrupt/t9n/messages.ru.json +1 -0
  187. package/dist/cdn/assets/assistant-interrupt/t9n/messages.sk.json +1 -0
  188. package/dist/cdn/assets/assistant-interrupt/t9n/messages.sl.json +1 -0
  189. package/dist/cdn/assets/assistant-interrupt/t9n/messages.sr.json +1 -0
  190. package/dist/cdn/assets/assistant-interrupt/t9n/messages.sv.json +1 -0
  191. package/dist/cdn/assets/assistant-interrupt/t9n/messages.th.json +1 -0
  192. package/dist/cdn/assets/assistant-interrupt/t9n/messages.tr.json +1 -0
  193. package/dist/cdn/assets/assistant-interrupt/t9n/messages.uk.json +1 -0
  194. package/dist/cdn/assets/assistant-interrupt/t9n/messages.vi.json +1 -0
  195. package/dist/cdn/assets/assistant-interrupt/t9n/messages.zh-CN.json +1 -0
  196. package/dist/cdn/assets/assistant-interrupt/t9n/messages.zh-HK.json +1 -0
  197. package/dist/cdn/assets/assistant-interrupt/t9n/messages.zh-TW.json +1 -0
  198. package/dist/cdn/assets/assistant-shell/t9n/messages.ar.json +1 -0
  199. package/dist/cdn/assets/assistant-shell/t9n/messages.bg.json +1 -0
  200. package/dist/cdn/assets/assistant-shell/t9n/messages.bs.json +1 -0
  201. package/dist/cdn/assets/assistant-shell/t9n/messages.ca.json +1 -0
  202. package/dist/cdn/assets/assistant-shell/t9n/messages.cs.json +1 -0
  203. package/dist/cdn/assets/assistant-shell/t9n/messages.da.json +1 -0
  204. package/dist/cdn/assets/assistant-shell/t9n/messages.de.json +1 -0
  205. package/dist/cdn/assets/assistant-shell/t9n/messages.el.json +1 -0
  206. package/dist/cdn/assets/assistant-shell/t9n/messages.es.json +1 -0
  207. package/dist/cdn/assets/assistant-shell/t9n/messages.et.json +1 -0
  208. package/dist/cdn/assets/assistant-shell/t9n/messages.fi.json +1 -0
  209. package/dist/cdn/assets/assistant-shell/t9n/messages.fr.json +1 -0
  210. package/dist/cdn/assets/assistant-shell/t9n/messages.he.json +1 -0
  211. package/dist/cdn/assets/assistant-shell/t9n/messages.hr.json +1 -0
  212. package/dist/cdn/assets/assistant-shell/t9n/messages.hu.json +1 -0
  213. package/dist/cdn/assets/assistant-shell/t9n/messages.id.json +1 -0
  214. package/dist/cdn/assets/assistant-shell/t9n/messages.it.json +1 -0
  215. package/dist/cdn/assets/assistant-shell/t9n/messages.ja.json +1 -0
  216. package/dist/cdn/assets/assistant-shell/t9n/messages.ko.json +1 -0
  217. package/dist/cdn/assets/assistant-shell/t9n/messages.lt.json +1 -0
  218. package/dist/cdn/assets/assistant-shell/t9n/messages.lv.json +1 -0
  219. package/dist/cdn/assets/assistant-shell/t9n/messages.nl.json +1 -0
  220. package/dist/cdn/assets/assistant-shell/t9n/messages.no.json +1 -0
  221. package/dist/cdn/assets/assistant-shell/t9n/messages.pl.json +1 -0
  222. package/dist/cdn/assets/assistant-shell/t9n/messages.pt-BR.json +1 -0
  223. package/dist/cdn/assets/assistant-shell/t9n/messages.pt-PT.json +1 -0
  224. package/dist/cdn/assets/assistant-shell/t9n/messages.ro.json +1 -0
  225. package/dist/cdn/assets/assistant-shell/t9n/messages.ru.json +1 -0
  226. package/dist/cdn/assets/assistant-shell/t9n/messages.sk.json +1 -0
  227. package/dist/cdn/assets/assistant-shell/t9n/messages.sl.json +1 -0
  228. package/dist/cdn/assets/assistant-shell/t9n/messages.sr.json +1 -0
  229. package/dist/cdn/assets/assistant-shell/t9n/messages.sv.json +1 -0
  230. package/dist/cdn/assets/assistant-shell/t9n/messages.th.json +1 -0
  231. package/dist/cdn/assets/assistant-shell/t9n/messages.tr.json +1 -0
  232. package/dist/cdn/assets/assistant-shell/t9n/messages.uk.json +1 -0
  233. package/dist/cdn/assets/assistant-shell/t9n/messages.vi.json +1 -0
  234. package/dist/cdn/assets/assistant-shell/t9n/messages.zh-CN.json +1 -0
  235. package/dist/cdn/assets/assistant-shell/t9n/messages.zh-HK.json +1 -0
  236. package/dist/cdn/assets/assistant-shell/t9n/messages.zh-TW.json +1 -0
  237. package/dist/cdn/index.js +2 -4
  238. package/dist/chunks/runtime.js +1 -3
  239. package/dist/chunks/useT9n.js +1 -3
  240. package/dist/chunks/utils.js +1 -3
  241. package/dist/chunks/utils2.js +1 -3
  242. package/dist/components/arcgis-assistant/customElement.d.ts +117 -3
  243. package/dist/components/arcgis-assistant/customElement.js +12 -14
  244. package/dist/components/arcgis-assistant-agent/customElement.d.ts +120 -2
  245. package/dist/components/arcgis-assistant-agent/customElement.js +1 -3
  246. package/dist/components/arcgis-assistant-chat/customElement.d.ts +2 -1
  247. package/dist/components/arcgis-assistant-chat/customElement.js +1 -3
  248. package/dist/components/arcgis-assistant-chat-card/customElement.d.ts +2 -1
  249. package/dist/components/arcgis-assistant-chat-card/customElement.js +1 -3
  250. package/dist/components/arcgis-assistant-chat-card-content/customElement.d.ts +2 -1
  251. package/dist/components/arcgis-assistant-chat-card-content/customElement.js +1 -3
  252. package/dist/components/arcgis-assistant-chat-entry/customElement.d.ts +2 -1
  253. package/dist/components/arcgis-assistant-chat-entry/customElement.js +1 -3
  254. package/dist/components/arcgis-assistant-data-exploration-agent/customElement.d.ts +28 -1
  255. package/dist/components/arcgis-assistant-data-exploration-agent/customElement.js +1 -3
  256. package/dist/components/arcgis-assistant-interrupt/customElement.d.ts +2 -1
  257. package/dist/components/arcgis-assistant-interrupt/customElement.js +1 -3
  258. package/dist/components/arcgis-assistant-layer-filter-agent/customElement.d.ts +2 -1
  259. package/dist/components/arcgis-assistant-layer-filter-agent/customElement.js +1 -3
  260. package/dist/components/arcgis-assistant-layer-query-agent/customElement.d.ts +2 -1
  261. package/dist/components/arcgis-assistant-layer-query-agent/customElement.js +1 -3
  262. package/dist/components/arcgis-assistant-layer-styling-agent/customElement.d.ts +2 -1
  263. package/dist/components/arcgis-assistant-layer-styling-agent/customElement.js +1 -3
  264. package/dist/components/arcgis-assistant-navigation-agent/customElement.d.ts +28 -1
  265. package/dist/components/arcgis-assistant-navigation-agent/customElement.js +1 -3
  266. package/dist/components/arcgis-assistant-shell/customElement.d.ts +2 -1
  267. package/dist/components/arcgis-assistant-shell/customElement.js +1 -3
  268. package/dist/docs/api.json +1 -1
  269. package/dist/docs/docs.json +1 -1
  270. package/dist/docs/vscode.html-custom-data.json +1 -1
  271. package/dist/docs/web-types.json +1 -1
  272. package/dist/index.js +1 -3
  273. package/dist/loader.js +1 -3
  274. package/package.json +8 -11
  275. package/dist/cdn/5UOB4H2A.js +0 -4
  276. package/dist/cdn/7MRF4WET.js +0 -4
  277. package/dist/cdn/AVZUVYVX.js +0 -4
  278. package/dist/cdn/CB2PODD7.js +0 -4
  279. package/dist/cdn/DD4BMSWI.js +0 -16
  280. package/dist/cdn/FKEUC44C.js +0 -4
  281. package/dist/cdn/KIXLFZXK.js +0 -4
  282. package/dist/cdn/QO5G3EUA.js +0 -4
  283. package/dist/cdn/SCXQGMCX.js +0 -4
  284. package/dist/cdn/XOTBUNPJ.js +0 -4
@@ -1,26 +1,24 @@
1
- /*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
2
- See https://js.arcgis.com/5.0/esri/copyright.txt for details.
3
- v5.0.0-next.141 */
4
- import a from"./BU5VWLVE.js";import{$a as Df,$b as zg,Aa as Ef,Ab as Ff,Ba as zn,Bb as Z,Ca as at,Cb as vr,Da as If,Db as Uf,Ea as B,Eb as zf,Fa as oe,Fb as Qe,Ga as kf,Gb as Oo,Ha as Bn,Hb as Ft,Ia as Ye,Ib as Bf,J as ve,Ja as xr,Jb as Kf,K as ii,Ka as ze,Kb as Ne,L as pf,La as ut,Lb as Po,M as Iu,Ma as he,Mb as Wf,N as ff,Na as Kn,Nb as Hf,O as wo,Oa as Tu,Ob as Gf,Pa as or,Pb as qf,Q as ue,Qa as Sf,R as jt,Ra as Cf,Rb as Jf,S as ku,Sa as Wn,Sb as Rg,T as Mt,Ta as oi,Tb as Ng,U as Su,Ua as ht,Ub as jg,V as hf,Va as Tf,Vb as Mg,Wa as Hn,Wb as Dg,Xa as Rf,Xb as $g,Ya as Nf,Yb as Lg,Z as df,Za as jf,Zb as Fg,_a as Mf,_b as Ug,a as xu,aa as ot,ab as Ru,ac as Bg,b as vu,ba as mf,bb as ai,bc as Fu,c as Yp,cb as Ag,d as Zp,db as Ze,e as Qp,eb as Nu,f as ef,fb as ui,g as tf,ga as Cu,gb as Og,h as rf,hb as ci,i as nf,ib as $t,j as ir,ja as Dt,jb as Pg,k as sf,ka as xo,kb as ju,l as of,la as gf,lb as Eg,m as go,mb as Ig,n as af,nb as kg,o as bo,oa as bf,ob as Lt,p as yo,pa as yf,pb as Ao,q as _o,qa as pe,qb as Mu,r as Au,ra as _f,rb as li,s as uf,sa as vo,sb as Sg,t as cf,ta as wf,tb as Cg,ua as xf,ub as Du,va as Jr,vb as Tg,w as lf,wa as vf,wb as Ae,x as Ou,xa as Af,xb as $f,y as Pu,ya as Of,yb as Lf,z as Eu,za as Pf,zb as $u}from"./G3K3GRB2.js";import{a as xg,b as re,c as vg}from"./H3CVMHP7.js";export default $arcgis.t(([dg,zp,Ow,{a:Vf,b:Kg,c:Wg,d:Hg,e:Vg,f:Gg,g:qg,h:Jg,i:Xg,j:Yg,k:Lu,l:Xr,m:Zg,n:Qg}])=>{var uh=xg(Do=>{"use strict";Do.byteLength=cb;Do.toByteArray=pb;Do.fromByteArray=db;var Ut=[],ct=[],ub=typeof Uint8Array<"u"?Uint8Array:Array,Zu="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(Qr=0,oh=Zu.length;Qr<oh;++Qr)Ut[Qr]=Zu[Qr],ct[Zu.charCodeAt(Qr)]=Qr;var Qr,oh;ct[45]=62;ct[95]=63;function ah(r){var e=r.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var t=r.indexOf("=");t===-1&&(t=e);var n=t===e?0:4-t%4;return[t,n]}function cb(r){var e=ah(r),t=e[0],n=e[1];return(t+n)*3/4-n}function lb(r,e,t){return(e+t)*3/4-t}function pb(r){var e,t=ah(r),n=t[0],s=t[1],i=new ub(lb(r,n,s)),o=0,a=s>0?n-4:n,u;for(u=0;u<a;u+=4)e=ct[r.charCodeAt(u)]<<18|ct[r.charCodeAt(u+1)]<<12|ct[r.charCodeAt(u+2)]<<6|ct[r.charCodeAt(u+3)],i[o++]=e>>16&255,i[o++]=e>>8&255,i[o++]=e&255;return s===2&&(e=ct[r.charCodeAt(u)]<<2|ct[r.charCodeAt(u+1)]>>4,i[o++]=e&255),s===1&&(e=ct[r.charCodeAt(u)]<<10|ct[r.charCodeAt(u+1)]<<4|ct[r.charCodeAt(u+2)]>>2,i[o++]=e>>8&255,i[o++]=e&255),i}function fb(r){return Ut[r>>18&63]+Ut[r>>12&63]+Ut[r>>6&63]+Ut[r&63]}function hb(r,e,t){for(var n,s=[],i=e;i<t;i+=3)n=(r[i]<<16&16711680)+(r[i+1]<<8&65280)+(r[i+2]&255),s.push(fb(n));return s.join("")}function db(r){for(var e,t=r.length,n=t%3,s=[],i=16383,o=0,a=t-n;o<a;o+=i)s.push(hb(r,o,o+i>a?a:o+i));return n===1?(e=r[t-1],s.push(Ut[e>>2]+Ut[e<<4&63]+"==")):n===2&&(e=(r[t-2]<<8)+r[t-1],s.push(Ut[e>>10]+Ut[e>>4&63]+Ut[e<<2&63]+"=")),s.join("")}});var ar=class extends Error{constructor(e,t){let n=e??"";t?.lc_error_code&&(n=`${n}
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.0/LICENSE.txt */
2
+ import a from"./KRDVOF7K.js";import{$a as Uf,$b as Gg,Aa as Cf,Ab as Kf,Ba as Bn,Bb as Z,Ca as at,Cb as Ar,Da as Tf,Db as Wf,Ea as B,Eb as Hf,Fa as ae,Fb as Qe,Ga as Rf,Gb as Po,Ha as Kn,Hb as Ft,Ia as Ye,Ib as Vf,J as ve,Ja as vr,Jb as Gf,K as ii,Ka as ze,Kb as Ne,L as mf,La as ut,Lb as Eo,M as Tu,Ma as he,Mb as qf,N as gf,Na as Wn,Nb as Jf,O as xo,Oa as Mu,Ob as Yf,Pa as ar,Pb as Zf,Q as ce,Qa as Nf,R as jt,Ra as jf,Rb as Qf,S as Ru,Sa as Hn,Sb as Lg,T as Mt,Ta as oi,Tb as Fg,U as Nu,Ua as ht,Ub as Ug,V as bf,Va as Mf,Vb as zg,Wa as Vn,Wb as Bg,Xa as Df,Xb as Kg,Ya as $f,Yb as Wg,Z as yf,Za as Lf,Zb as Hg,_a as Ff,_b as Vg,a as Pu,aa as ot,ab as Du,ac as qg,b as Eu,ba as _f,bb as ai,bc as Ku,c as tf,cb as Sg,d as rf,db as Ze,e as nf,eb as $u,f as sf,fb as ui,g as of,ga as ju,gb as Cg,h as af,hb as ci,i as uf,ib as $t,j as or,ja as Dt,jb as Tg,k as cf,ka as vo,kb as Lu,l as lf,la as wf,lb as Rg,m as bo,mb as Ng,n as pf,nb as jg,o as yo,oa as xf,ob as Lt,p as _o,pa as vf,pb as Oo,q as wo,qa as te,qb as Fu,r as Iu,ra as Af,rb as li,s as ff,sa as Ao,sb as Mg,t as hf,ta as Of,tb as Dg,ua as Pf,ub as Uu,va as Zr,vb as $g,w as df,wa as Ef,wb as Ae,x as ku,xa as If,xb as zf,y as Su,ya as kf,yb as Bf,z as Cu,za as Sf,zb as zu}from"./CSKRXBVL.js";import{a as Ig,b as ne,c as kg}from"./2GMCG6SX.js";export default $arcgis.t(([Wp,vu,Cw,{a:Xf,b:Jg,c:Xg,d:Yg,e:Zg,f:Qg,g:eb,h:tb,i:rb,j:nb,k:Bu,l:Qr,m:sb,n:ib}])=>{var fh=Ig($o=>{"use strict";$o.byteLength=mb;$o.toByteArray=bb;$o.fromByteArray=wb;var Ut=[],ct=[],db=typeof Uint8Array<"u"?Uint8Array:Array,rc="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(tn=0,lh=rc.length;tn<lh;++tn)Ut[tn]=rc[tn],ct[rc.charCodeAt(tn)]=tn;var tn,lh;ct[45]=62;ct[95]=63;function ph(r){var e=r.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var t=r.indexOf("=");t===-1&&(t=e);var n=t===e?0:4-t%4;return[t,n]}function mb(r){var e=ph(r),t=e[0],n=e[1];return(t+n)*3/4-n}function gb(r,e,t){return(e+t)*3/4-t}function bb(r){var e,t=ph(r),n=t[0],s=t[1],i=new db(gb(r,n,s)),o=0,a=s>0?n-4:n,u;for(u=0;u<a;u+=4)e=ct[r.charCodeAt(u)]<<18|ct[r.charCodeAt(u+1)]<<12|ct[r.charCodeAt(u+2)]<<6|ct[r.charCodeAt(u+3)],i[o++]=e>>16&255,i[o++]=e>>8&255,i[o++]=e&255;return s===2&&(e=ct[r.charCodeAt(u)]<<2|ct[r.charCodeAt(u+1)]>>4,i[o++]=e&255),s===1&&(e=ct[r.charCodeAt(u)]<<10|ct[r.charCodeAt(u+1)]<<4|ct[r.charCodeAt(u+2)]>>2,i[o++]=e>>8&255,i[o++]=e&255),i}function yb(r){return Ut[r>>18&63]+Ut[r>>12&63]+Ut[r>>6&63]+Ut[r&63]}function _b(r,e,t){for(var n,s=[],i=e;i<t;i+=3)n=(r[i]<<16&16711680)+(r[i+1]<<8&65280)+(r[i+2]&255),s.push(yb(n));return s.join("")}function wb(r){for(var e,t=r.length,n=t%3,s=[],i=16383,o=0,a=t-n;o<a;o+=i)s.push(_b(r,o,o+i>a?a:o+i));return n===1?(e=r[t-1],s.push(Ut[e>>2]+Ut[e<<4&63]+"==")):n===2&&(e=(r[t-2]<<8)+r[t-1],s.push(Ut[e>>10]+Ut[e>>4&63]+Ut[e<<2&63]+"=")),s.join("")}});var ur=class extends Error{constructor(e,t){let n=e??"";t?.lc_error_code&&(n=`${n}
5
3
 
6
4
  Troubleshooting URL: https://langchain-ai.github.io/langgraphjs/troubleshooting/errors/${t.lc_error_code}/
7
- `),super(n),Object.defineProperty(this,"lc_error_code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.lc_error_code=t?.lc_error_code}},Eo=class extends ar{get is_bubble_up(){return!0}},Io=class extends ar{constructor(e,t){super(e,t),this.name="GraphRecursionError"}static get unminifiable_name(){return"GraphRecursionError"}},Vn=class extends ar{constructor(e,t){super(e,t),this.name="GraphValueError"}static get unminifiable_name(){return"GraphValueError"}},Ar=class extends Eo{constructor(e,t){super(JSON.stringify(e,null,2),t),Object.defineProperty(this,"interrupts",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="GraphInterrupt",this.interrupts=e??[]}static get unminifiable_name(){return"GraphInterrupt"}},pi=class extends Ar{constructor(e,t){super([{value:e}],t),this.name="NodeInterrupt"}static get unminifiable_name(){return"NodeInterrupt"}},fi=class extends Eo{constructor(e){super(),Object.defineProperty(this,"command",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="ParentCommand",this.command=e}static get unminifiable_name(){return"ParentCommand"}};function Xf(r){return r!==void 0&&r.name===fi.unminifiable_name}function Gn(r){return r!==void 0&&r.is_bubble_up===!0}function Or(r){return r!==void 0&&[Ar.unminifiable_name,pi.unminifiable_name].includes(r.name)}var hi=class extends ar{constructor(e,t){super(e,t),this.name="EmptyInputError"}static get unminifiable_name(){return"EmptyInputError"}},ne=class extends ar{constructor(e,t){super(e,t),this.name="EmptyChannelError"}static get unminifiable_name(){return"EmptyChannelError"}},X=class extends ar{constructor(e,t){super(e,t),this.name="InvalidUpdateError"}static get unminifiable_name(){return"InvalidUpdateError"}};var ko=class extends ar{constructor(e,t){super(e,t),this.name="UnreachableNodeError"}static get unminifiable_name(){return"UnreachableNodeError"}};function So(r){return Zp({clockseq:r})}function Pr(r,e){let t=e.replace(/-/g,"").match(/.{2}/g).map(n=>parseInt(n,16));return Yp(r,new Uint8Array(t))}var Co="__pregel_tasks",Yf="__error__",qn="__scheduled__",Zf="__interrupt__",Qf="__resume__";var eh=[];var ol={};re(ol,{agents:()=>th,caches:()=>zu,callbacks__base:()=>xf,callbacks__manager:()=>If,callbacks__promises:()=>Ef,chat_history:()=>Ku,documents:()=>Hu,embeddings:()=>Vu,example_selectors:()=>Yu,language_models__base:()=>rc,language_models__chat_models:()=>ic,language_models__llms:()=>oc,load__serializable:()=>sf,memory:()=>uc,messages:()=>Vf,output_parsers:()=>xc,outputs:()=>Tf,prompt_values:()=>Jf,prompts:()=>Oc,retrievers:()=>Pc,runnables:()=>cc,stores:()=>Ic,tools:()=>Sc,tracers__base:()=>vf,tracers__console:()=>Af,tracers__initialize:()=>Tc,tracers__log_stream:()=>Cf,tracers__run_collector:()=>Nc,tracers__tracer_langchain:()=>Pf,tracers__tracer_langchain_v1:()=>Cc,utils__async_caller:()=>Rf,utils__chunk_array:()=>Mc,utils__env:()=>_f,utils__function_calling:()=>$c,utils__hash:()=>Uu,utils__json_patch:()=>bc,utils__json_schema:()=>Lf,utils__math:()=>Fc,utils__stream:()=>Sf,utils__testing:()=>sl,utils__tiktoken:()=>tc,utils__types:()=>il,vectorstores:()=>zc});var th={};var zu={};re(zu,{BaseCache:()=>No,InMemoryCache:()=>di,deserializeStoredGeneration:()=>nb,getCacheKey:()=>sh,serializeGeneration:()=>sb});var Uu={};re(Uu,{insecureHash:()=>To,sha256:()=>nh});var eb=typeof window=="object"?window:{},H="0123456789abcdef".split(""),tb=[-2147483648,8388608,32768,128],dt=[24,16,8,0];var Oe=[];function mt(r){r?(Oe[0]=Oe[16]=Oe[1]=Oe[2]=Oe[3]=Oe[4]=Oe[5]=Oe[6]=Oe[7]=Oe[8]=Oe[9]=Oe[10]=Oe[11]=Oe[12]=Oe[13]=Oe[14]=Oe[15]=0,this.blocks=Oe):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],this.h0=1732584193,this.h1=4023233417,this.h2=2562383102,this.h3=271733878,this.h4=3285377520,this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0}mt.prototype.update=function(r){if(!this.finalized){var e=typeof r!="string";e&&r.constructor===eb.ArrayBuffer&&(r=new Uint8Array(r));for(var t,n=0,s,i=r.length||0,o=this.blocks;n<i;){if(this.hashed&&(this.hashed=!1,o[0]=this.block,o[16]=o[1]=o[2]=o[3]=o[4]=o[5]=o[6]=o[7]=o[8]=o[9]=o[10]=o[11]=o[12]=o[13]=o[14]=o[15]=0),e)for(s=this.start;n<i&&s<64;++n)o[s>>2]|=r[n]<<dt[s++&3];else for(s=this.start;n<i&&s<64;++n)t=r.charCodeAt(n),t<128?o[s>>2]|=t<<dt[s++&3]:t<2048?(o[s>>2]|=(192|t>>6)<<dt[s++&3],o[s>>2]|=(128|t&63)<<dt[s++&3]):t<55296||t>=57344?(o[s>>2]|=(224|t>>12)<<dt[s++&3],o[s>>2]|=(128|t>>6&63)<<dt[s++&3],o[s>>2]|=(128|t&63)<<dt[s++&3]):(t=65536+((t&1023)<<10|r.charCodeAt(++n)&1023),o[s>>2]|=(240|t>>18)<<dt[s++&3],o[s>>2]|=(128|t>>12&63)<<dt[s++&3],o[s>>2]|=(128|t>>6&63)<<dt[s++&3],o[s>>2]|=(128|t&63)<<dt[s++&3]);this.lastByteIndex=s,this.bytes+=s-this.start,s>=64?(this.block=o[16],this.start=s-64,this.hash(),this.hashed=!0):this.start=s}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}};mt.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var r=this.blocks,e=this.lastByteIndex;r[16]=this.block,r[e>>2]|=tb[e&3],this.block=r[16],e>=56&&(this.hashed||this.hash(),r[0]=this.block,r[16]=r[1]=r[2]=r[3]=r[4]=r[5]=r[6]=r[7]=r[8]=r[9]=r[10]=r[11]=r[12]=r[13]=r[14]=r[15]=0),r[14]=this.hBytes<<3|this.bytes>>>29,r[15]=this.bytes<<3,this.hash()}};mt.prototype.hash=function(){var r=this.h0,e=this.h1,t=this.h2,n=this.h3,s=this.h4,i,o,a,u=this.blocks;for(o=16;o<80;++o)a=u[o-3]^u[o-8]^u[o-14]^u[o-16],u[o]=a<<1|a>>>31;for(o=0;o<20;o+=5)i=e&t|~e&n,a=r<<5|r>>>27,s=a+i+s+1518500249+u[o]<<0,e=e<<30|e>>>2,i=r&e|~r&t,a=s<<5|s>>>27,n=a+i+n+1518500249+u[o+1]<<0,r=r<<30|r>>>2,i=s&r|~s&e,a=n<<5|n>>>27,t=a+i+t+1518500249+u[o+2]<<0,s=s<<30|s>>>2,i=n&s|~n&r,a=t<<5|t>>>27,e=a+i+e+1518500249+u[o+3]<<0,n=n<<30|n>>>2,i=t&n|~t&s,a=e<<5|e>>>27,r=a+i+r+1518500249+u[o+4]<<0,t=t<<30|t>>>2;for(;o<40;o+=5)i=e^t^n,a=r<<5|r>>>27,s=a+i+s+1859775393+u[o]<<0,e=e<<30|e>>>2,i=r^e^t,a=s<<5|s>>>27,n=a+i+n+1859775393+u[o+1]<<0,r=r<<30|r>>>2,i=s^r^e,a=n<<5|n>>>27,t=a+i+t+1859775393+u[o+2]<<0,s=s<<30|s>>>2,i=n^s^r,a=t<<5|t>>>27,e=a+i+e+1859775393+u[o+3]<<0,n=n<<30|n>>>2,i=t^n^s,a=e<<5|e>>>27,r=a+i+r+1859775393+u[o+4]<<0,t=t<<30|t>>>2;for(;o<60;o+=5)i=e&t|e&n|t&n,a=r<<5|r>>>27,s=a+i+s-1894007588+u[o]<<0,e=e<<30|e>>>2,i=r&e|r&t|e&t,a=s<<5|s>>>27,n=a+i+n-1894007588+u[o+1]<<0,r=r<<30|r>>>2,i=s&r|s&e|r&e,a=n<<5|n>>>27,t=a+i+t-1894007588+u[o+2]<<0,s=s<<30|s>>>2,i=n&s|n&r|s&r,a=t<<5|t>>>27,e=a+i+e-1894007588+u[o+3]<<0,n=n<<30|n>>>2,i=t&n|t&s|n&s,a=e<<5|e>>>27,r=a+i+r-1894007588+u[o+4]<<0,t=t<<30|t>>>2;for(;o<80;o+=5)i=e^t^n,a=r<<5|r>>>27,s=a+i+s-899497514+u[o]<<0,e=e<<30|e>>>2,i=r^e^t,a=s<<5|s>>>27,n=a+i+n-899497514+u[o+1]<<0,r=r<<30|r>>>2,i=s^r^e,a=n<<5|n>>>27,t=a+i+t-899497514+u[o+2]<<0,s=s<<30|s>>>2,i=n^s^r,a=t<<5|t>>>27,e=a+i+e-899497514+u[o+3]<<0,n=n<<30|n>>>2,i=t^n^s,a=e<<5|e>>>27,r=a+i+r-899497514+u[o+4]<<0,t=t<<30|t>>>2;this.h0=this.h0+r<<0,this.h1=this.h1+e<<0,this.h2=this.h2+t<<0,this.h3=this.h3+n<<0,this.h4=this.h4+s<<0};mt.prototype.hex=function(){this.finalize();var r=this.h0,e=this.h1,t=this.h2,n=this.h3,s=this.h4;return H[r>>28&15]+H[r>>24&15]+H[r>>20&15]+H[r>>16&15]+H[r>>12&15]+H[r>>8&15]+H[r>>4&15]+H[r&15]+H[e>>28&15]+H[e>>24&15]+H[e>>20&15]+H[e>>16&15]+H[e>>12&15]+H[e>>8&15]+H[e>>4&15]+H[e&15]+H[t>>28&15]+H[t>>24&15]+H[t>>20&15]+H[t>>16&15]+H[t>>12&15]+H[t>>8&15]+H[t>>4&15]+H[t&15]+H[n>>28&15]+H[n>>24&15]+H[n>>20&15]+H[n>>16&15]+H[n>>12&15]+H[n>>8&15]+H[n>>4&15]+H[n&15]+H[s>>28&15]+H[s>>24&15]+H[s>>20&15]+H[s>>16&15]+H[s>>12&15]+H[s>>8&15]+H[s>>4&15]+H[s&15]};mt.prototype.toString=mt.prototype.hex;mt.prototype.digest=function(){this.finalize();var r=this.h0,e=this.h1,t=this.h2,n=this.h3,s=this.h4;return[r>>24&255,r>>16&255,r>>8&255,r&255,e>>24&255,e>>16&255,e>>8&255,e&255,t>>24&255,t>>16&255,t>>8&255,t&255,n>>24&255,n>>16&255,n>>8&255,n&255,s>>24&255,s>>16&255,s>>8&255,s&255]};mt.prototype.array=mt.prototype.digest;mt.prototype.arrayBuffer=function(){this.finalize();var r=new ArrayBuffer(20),e=new DataView(r);return e.setUint32(0,this.h0),e.setUint32(4,this.h1),e.setUint32(8,this.h2),e.setUint32(12,this.h3),e.setUint32(16,this.h4),r};var rh=!1,To=r=>(rh||(console.warn(["The default method for hashing keys is insecure and will be replaced in a future version,","but hasn't been replaced yet as to not break existing caches. It's recommended that you use","a more secure hashing algorithm to avoid cache poisoning.","","See this page for more information:","|","\u2514> https://js.langchain.com/docs/troubleshooting/warnings/insecure-cache-algorithm"].join(`
8
- `)),rh=!0),new mt(!0).update(r).hex());var M="0123456789abcdef".split(""),rb=[-2147483648,8388608,32768,128],gt=[24,16,8,0],Ro=[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];var Pe=[];function bt(r,e){e?(Pe[0]=Pe[16]=Pe[1]=Pe[2]=Pe[3]=Pe[4]=Pe[5]=Pe[6]=Pe[7]=Pe[8]=Pe[9]=Pe[10]=Pe[11]=Pe[12]=Pe[13]=Pe[14]=Pe[15]=0,this.blocks=Pe):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],r?(this.h0=3238371032,this.h1=914150663,this.h2=812702999,this.h3=4144912697,this.h4=4290775857,this.h5=1750603025,this.h6=1694076839,this.h7=3204075428):(this.h0=1779033703,this.h1=3144134277,this.h2=1013904242,this.h3=2773480762,this.h4=1359893119,this.h5=2600822924,this.h6=528734635,this.h7=1541459225),this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0,this.is224=r}bt.prototype.update=function(r){if(!this.finalized){var e,t=typeof r;if(t!=="string"){if(t==="object"){if(r===null)throw new Error(ERROR);if(ARRAY_BUFFER&&r.constructor===ArrayBuffer)r=new Uint8Array(r);else if(!Array.isArray(r)&&(!ARRAY_BUFFER||!ArrayBuffer.isView(r)))throw new Error(ERROR)}else throw new Error(ERROR);e=!0}for(var n,s=0,i,o=r.length,a=this.blocks;s<o;){if(this.hashed&&(this.hashed=!1,a[0]=this.block,this.block=a[16]=a[1]=a[2]=a[3]=a[4]=a[5]=a[6]=a[7]=a[8]=a[9]=a[10]=a[11]=a[12]=a[13]=a[14]=a[15]=0),e)for(i=this.start;s<o&&i<64;++s)a[i>>>2]|=r[s]<<gt[i++&3];else for(i=this.start;s<o&&i<64;++s)n=r.charCodeAt(s),n<128?a[i>>>2]|=n<<gt[i++&3]:n<2048?(a[i>>>2]|=(192|n>>>6)<<gt[i++&3],a[i>>>2]|=(128|n&63)<<gt[i++&3]):n<55296||n>=57344?(a[i>>>2]|=(224|n>>>12)<<gt[i++&3],a[i>>>2]|=(128|n>>>6&63)<<gt[i++&3],a[i>>>2]|=(128|n&63)<<gt[i++&3]):(n=65536+((n&1023)<<10|r.charCodeAt(++s)&1023),a[i>>>2]|=(240|n>>>18)<<gt[i++&3],a[i>>>2]|=(128|n>>>12&63)<<gt[i++&3],a[i>>>2]|=(128|n>>>6&63)<<gt[i++&3],a[i>>>2]|=(128|n&63)<<gt[i++&3]);this.lastByteIndex=i,this.bytes+=i-this.start,i>=64?(this.block=a[16],this.start=i-64,this.hash(),this.hashed=!0):this.start=i}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}};bt.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var r=this.blocks,e=this.lastByteIndex;r[16]=this.block,r[e>>>2]|=rb[e&3],this.block=r[16],e>=56&&(this.hashed||this.hash(),r[0]=this.block,r[16]=r[1]=r[2]=r[3]=r[4]=r[5]=r[6]=r[7]=r[8]=r[9]=r[10]=r[11]=r[12]=r[13]=r[14]=r[15]=0),r[14]=this.hBytes<<3|this.bytes>>>29,r[15]=this.bytes<<3,this.hash()}};bt.prototype.hash=function(){var r=this.h0,e=this.h1,t=this.h2,n=this.h3,s=this.h4,i=this.h5,o=this.h6,a=this.h7,u=this.blocks,c,l,p,h,f,g,b,_,I,v,S;for(c=16;c<64;++c)f=u[c-15],l=(f>>>7|f<<25)^(f>>>18|f<<14)^f>>>3,f=u[c-2],p=(f>>>17|f<<15)^(f>>>19|f<<13)^f>>>10,u[c]=u[c-16]+l+u[c-7]+p<<0;for(S=e&t,c=0;c<64;c+=4)this.first?(this.is224?(_=300032,f=u[0]-1413257819,a=f-150054599<<0,n=f+24177077<<0):(_=704751109,f=u[0]-210244248,a=f-1521486534<<0,n=f+143694565<<0),this.first=!1):(l=(r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10),p=(s>>>6|s<<26)^(s>>>11|s<<21)^(s>>>25|s<<7),_=r&e,h=_^r&t^S,b=s&i^~s&o,f=a+p+b+Ro[c]+u[c],g=l+h,a=n+f<<0,n=f+g<<0),l=(n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10),p=(a>>>6|a<<26)^(a>>>11|a<<21)^(a>>>25|a<<7),I=n&r,h=I^n&e^_,b=o&a^~o&s,f=i+p+b+Ro[c+1]+u[c+1],g=l+h,o=t+f<<0,t=f+g<<0,l=(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10),p=(o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7),v=t&n,h=v^t&r^I,b=i&o^~i&a,f=s+p+b+Ro[c+2]+u[c+2],g=l+h,i=e+f<<0,e=f+g<<0,l=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10),p=(i>>>6|i<<26)^(i>>>11|i<<21)^(i>>>25|i<<7),S=e&t,h=S^e&n^v,b=i&o^~i&a,f=s+p+b+Ro[c+3]+u[c+3],g=l+h,s=r+f<<0,r=f+g<<0,this.chromeBugWorkAround=!0;this.h0=this.h0+r<<0,this.h1=this.h1+e<<0,this.h2=this.h2+t<<0,this.h3=this.h3+n<<0,this.h4=this.h4+s<<0,this.h5=this.h5+i<<0,this.h6=this.h6+o<<0,this.h7=this.h7+a<<0};bt.prototype.hex=function(){this.finalize();var r=this.h0,e=this.h1,t=this.h2,n=this.h3,s=this.h4,i=this.h5,o=this.h6,a=this.h7,u=M[r>>>28&15]+M[r>>>24&15]+M[r>>>20&15]+M[r>>>16&15]+M[r>>>12&15]+M[r>>>8&15]+M[r>>>4&15]+M[r&15]+M[e>>>28&15]+M[e>>>24&15]+M[e>>>20&15]+M[e>>>16&15]+M[e>>>12&15]+M[e>>>8&15]+M[e>>>4&15]+M[e&15]+M[t>>>28&15]+M[t>>>24&15]+M[t>>>20&15]+M[t>>>16&15]+M[t>>>12&15]+M[t>>>8&15]+M[t>>>4&15]+M[t&15]+M[n>>>28&15]+M[n>>>24&15]+M[n>>>20&15]+M[n>>>16&15]+M[n>>>12&15]+M[n>>>8&15]+M[n>>>4&15]+M[n&15]+M[s>>>28&15]+M[s>>>24&15]+M[s>>>20&15]+M[s>>>16&15]+M[s>>>12&15]+M[s>>>8&15]+M[s>>>4&15]+M[s&15]+M[i>>>28&15]+M[i>>>24&15]+M[i>>>20&15]+M[i>>>16&15]+M[i>>>12&15]+M[i>>>8&15]+M[i>>>4&15]+M[i&15]+M[o>>>28&15]+M[o>>>24&15]+M[o>>>20&15]+M[o>>>16&15]+M[o>>>12&15]+M[o>>>8&15]+M[o>>>4&15]+M[o&15];return this.is224||(u+=M[a>>>28&15]+M[a>>>24&15]+M[a>>>20&15]+M[a>>>16&15]+M[a>>>12&15]+M[a>>>8&15]+M[a>>>4&15]+M[a&15]),u};bt.prototype.toString=bt.prototype.hex;bt.prototype.digest=function(){this.finalize();var r=this.h0,e=this.h1,t=this.h2,n=this.h3,s=this.h4,i=this.h5,o=this.h6,a=this.h7,u=[r>>>24&255,r>>>16&255,r>>>8&255,r&255,e>>>24&255,e>>>16&255,e>>>8&255,e&255,t>>>24&255,t>>>16&255,t>>>8&255,t&255,n>>>24&255,n>>>16&255,n>>>8&255,n&255,s>>>24&255,s>>>16&255,s>>>8&255,s&255,i>>>24&255,i>>>16&255,i>>>8&255,i&255,o>>>24&255,o>>>16&255,o>>>8&255,o&255];return this.is224||u.push(a>>>24&255,a>>>16&255,a>>>8&255,a&255),u};bt.prototype.array=bt.prototype.digest;bt.prototype.arrayBuffer=function(){this.finalize();var r=new ArrayBuffer(this.is224?28:32),e=new DataView(r);return e.setUint32(0,this.h0),e.setUint32(4,this.h1),e.setUint32(8,this.h2),e.setUint32(12,this.h3),e.setUint32(16,this.h4),e.setUint32(20,this.h5),e.setUint32(24,this.h6),this.is224||e.setUint32(28,this.h7),r};var nh=(...r)=>new bt(!1,!0).update(r.join("")).hex();var sh=(...r)=>To(r.join("_"));function nb(r){return r.message!==void 0?{text:r.text,message:gf(r.message)}:{text:r.text}}function sb(r){let e={text:r.text};return r.message!==void 0&&(e.message=r.message.toDict()),e}var No=class{constructor(){Object.defineProperty(this,"keyEncoder",{enumerable:!0,configurable:!0,writable:!0,value:sh})}makeDefaultKeyEncoder(e){this.keyEncoder=e}},ib=new Map,di=class r extends No{constructor(e){super(),Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cache=e??new Map}lookup(e,t){return Promise.resolve(this.cache.get(this.keyEncoder(e,t))??null)}async update(e,t,n){this.cache.set(this.keyEncoder(e,t),n)}static global(){return new r(ib)}};var Ku={};re(Ku,{BaseChatMessageHistory:()=>mi,BaseListChatMessageHistory:()=>Jn,InMemoryChatMessageHistory:()=>Bu});var mi=class extends ir{async addMessages(e){for(let t of e)await this.addMessage(t)}},Jn=class extends ir{addUserMessage(e){return this.addMessage(new ot(e))}addAIChatMessage(e){return this.addMessage(new ue(e))}addAIMessage(e){return this.addMessage(new ue(e))}async addMessages(e){for(let t of e)await this.addMessage(t)}clear(){throw new Error("Not implemented.")}},Bu=class extends Jn{constructor(e){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","stores","message","in_memory"]}),Object.defineProperty(this,"messages",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.messages=e??[]}async getMessages(){return this.messages}async addMessage(e){this.messages.push(e)}async clear(){this.messages=[]}};var Hu={};re(Hu,{BaseDocumentTransformer:()=>jo,Document:()=>yt,MappingDocumentTransformer:()=>Wu});var yt=class{constructor(e){Object.defineProperty(this,"pageContent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.pageContent=e.pageContent!==void 0?e.pageContent.toString():"",this.metadata=e.metadata??{},this.id=e.id}};var jo=class extends Z{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","documents","transformers"]})}invoke(e,t){return this.transformDocuments(e)}},Wu=class extends jo{async transformDocuments(e){let t=[];for(let n of e){let s=await this._transformDocument(n);t.push(s)}return t}};var Vu={};re(Vu,{Embeddings:()=>Yr});var Yr=class{constructor(e){Object.defineProperty(this,"caller",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.caller=new Hn(e??{})}};var Yu={};re(Yu,{BaseExampleSelector:()=>Zr,BasePromptSelector:()=>Mo,ConditionalPromptSelector:()=>Gu,LengthBasedExampleSelector:()=>qu,SemanticSimilarityExampleSelector:()=>Xu,isChatModel:()=>ab,isLLM:()=>ob});var Zr=class extends ir{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","example_selectors","base"]})}};var Mo=class{async getPromptAsync(e,t){return this.getPrompt(e).partial(t?.partialVariables??{})}},Gu=class extends Mo{constructor(e,t=[]){super(),Object.defineProperty(this,"defaultPrompt",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"conditionals",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.defaultPrompt=e,this.conditionals=t}getPrompt(e){for(let[t,n]of this.conditionals)if(t(e))return n;return this.defaultPrompt}};function ob(r){return r._modelType()==="base_llm"}function ab(r){return r._modelType()==="base_chat_model"}function ih(r){return r.split(/\n| /).length}var qu=class r extends Zr{constructor(e){super(e),Object.defineProperty(this,"examples",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"examplePrompt",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"getTextLength",{enumerable:!0,configurable:!0,writable:!0,value:ih}),Object.defineProperty(this,"maxLength",{enumerable:!0,configurable:!0,writable:!0,value:2048}),Object.defineProperty(this,"exampleTextLengths",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.examplePrompt=e.examplePrompt,this.maxLength=e.maxLength??2048,this.getTextLength=e.getTextLength??ih}async addExample(e){this.examples.push(e);let t=await this.examplePrompt.format(e);this.exampleTextLengths.push(this.getTextLength(t))}async calculateExampleTextLengths(e,t){if(e.length>0)return e;let{examples:n,examplePrompt:s}=t;return(await Promise.all(n.map(o=>s.format(o)))).map(o=>this.getTextLength(o))}async selectExamples(e){let t=Object.values(e).join(" "),n=this.maxLength-this.getTextLength(t),s=0,i=[];for(;n>0&&s<this.examples.length;){let o=n-this.exampleTextLengths[s];if(o<0)break;i.push(this.examples[s]),n=o,s+=1}return i}static async fromExamples(e,t){let n=new r(t);return await Promise.all(e.map(s=>n.addExample(s))),n}};function Ju(r){return Object.keys(r).sort().map(e=>r[e])}var Xu=class r extends Zr{constructor(e){if(super(e),Object.defineProperty(this,"vectorStoreRetriever",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"exampleKeys",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"inputKeys",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.exampleKeys=e.exampleKeys,this.inputKeys=e.inputKeys,e.vectorStore!==void 0)this.vectorStoreRetriever=e.vectorStore.asRetriever({k:e.k??4,filter:e.filter});else if(e.vectorStoreRetriever)this.vectorStoreRetriever=e.vectorStoreRetriever;else throw new Error('You must specify one of "vectorStore" and "vectorStoreRetriever".')}async addExample(e){let t=this.inputKeys??Object.keys(e),n=Ju(t.reduce((s,i)=>({...s,[i]:e[i]}),{})).join(" ");await this.vectorStoreRetriever.addDocuments([new yt({pageContent:n,metadata:e})])}async selectExamples(e){let t=this.inputKeys??Object.keys(e),n=Ju(t.reduce((o,a)=>({...o,[a]:e[a]}),{})).join(" "),i=(await this.vectorStoreRetriever.invoke(n)).map(o=>o.metadata);return this.exampleKeys?i.map(o=>this.exampleKeys.reduce((a,u)=>({...a,[u]:o[u]}),{})):i}static async fromExamples(e,t,n,s={}){let i=s.inputKeys??null,o=e.map(u=>Ju(i?i.reduce((c,l)=>({...c,[l]:u[l]}),{}):u).join(" ")),a=await n.fromTexts(o,e,t,s);return new r({vectorStore:a,k:s.k??4,exampleKeys:s.exampleKeys,inputKeys:s.inputKeys})}};var rc={};re(rc,{BaseLangChain:()=>Xn,BaseLanguageModel:()=>en,calculateMaxTokens:()=>fh,getEmbeddingContextSize:()=>vb,getModelContextSize:()=>ph,getModelNameForTiktoken:()=>Uo,isOpenAITool:()=>zo});var tc={};re(tc,{encodingForModel:()=>Fo,getEncoding:()=>lh});var ch=vg(uh(),1),mb=Object.defineProperty,gb=(r,e,t)=>e in r?mb(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,bb=(r,e,t)=>(gb(r,typeof e!="symbol"?e+"":e,t),t);function yb(r,e){let t=Array.from({length:r.length},(n,s)=>({start:s,end:s+1}));for(;t.length>1;){let n=null;for(let s=0;s<t.length-1;s++){let i=r.slice(t[s].start,t[s+1].end),o=e.get(i.join(","));o!=null&&(n==null||o<n[0])&&(n=[o,s])}if(n!=null){let s=n[1];t[s]={start:t[s].start,end:t[s+1].end},t.splice(s+1,1)}else break}return t}function _b(r,e){return r.length===1?[e.get(r.join(","))]:yb(r,e).map(t=>e.get(r.slice(t.start,t.end).join(","))).filter(t=>t!=null)}function wb(r){return r.replace(/[\\^$*+?.()|[\]{}]/g,"\\$&")}var Qu=class{specialTokens;inverseSpecialTokens;patStr;textEncoder=new TextEncoder;textDecoder=new TextDecoder("utf-8");rankMap=new Map;textMap=new Map;constructor(r,e){this.patStr=r.pat_str;let t=r.bpe_ranks.split(`
9
- `).filter(Boolean).reduce((n,s)=>{let[i,o,...a]=s.split(" "),u=Number.parseInt(o,10);return a.forEach((c,l)=>n[c]=u+l),n},{});for(let[n,s]of Object.entries(t)){let i=ch.default.toByteArray(n);this.rankMap.set(i.join(","),s),this.textMap.set(s,i)}this.specialTokens={...r.special_tokens,...e},this.inverseSpecialTokens=Object.entries(this.specialTokens).reduce((n,[s,i])=>(n[i]=this.textEncoder.encode(s),n),{})}encode(r,e=[],t="all"){let n=new RegExp(this.patStr,"ug"),s=Qu.specialTokenRegex(Object.keys(this.specialTokens)),i=[],o=new Set(e==="all"?Object.keys(this.specialTokens):e),a=new Set(t==="all"?Object.keys(this.specialTokens).filter(c=>!o.has(c)):t);if(a.size>0){let c=Qu.specialTokenRegex([...a]),l=r.match(c);if(l!=null)throw new Error(`The text contains a special token that is not allowed: ${l[0]}`)}let u=0;for(;;){let c=null,l=u;for(;s.lastIndex=l,c=s.exec(r),!(c==null||o.has(c[0]));)l=c.index+1;let p=c?.index??r.length;for(let f of r.substring(u,p).matchAll(n)){let g=this.textEncoder.encode(f[0]),b=this.rankMap.get(g.join(","));if(b!=null){i.push(b);continue}i.push(..._b(g,this.rankMap))}if(c==null)break;let h=this.specialTokens[c[0]];i.push(h),u=c.index+c[0].length}return i}decode(r){let e=[],t=0;for(let i=0;i<r.length;++i){let o=r[i],a=this.textMap.get(o)??this.inverseSpecialTokens[o];a!=null&&(e.push(a),t+=a.length)}let n=new Uint8Array(t),s=0;for(let i of e)n.set(i,s),s+=i.length;return this.textDecoder.decode(n)}},$o=Qu;bb($o,"specialTokenRegex",r=>new RegExp(r.map(e=>wb(e)).join("|"),"g"));function ec(r){switch(r){case"gpt2":return"gpt2";case"code-cushman-001":case"code-cushman-002":case"code-davinci-001":case"code-davinci-002":case"cushman-codex":case"davinci-codex":case"davinci-002":case"text-davinci-002":case"text-davinci-003":return"p50k_base";case"code-davinci-edit-001":case"text-davinci-edit-001":return"p50k_edit";case"ada":case"babbage":case"babbage-002":case"code-search-ada-code-001":case"code-search-babbage-code-001":case"curie":case"davinci":case"text-ada-001":case"text-babbage-001":case"text-curie-001":case"text-davinci-001":case"text-search-ada-doc-001":case"text-search-babbage-doc-001":case"text-search-curie-doc-001":case"text-search-davinci-doc-001":case"text-similarity-ada-001":case"text-similarity-babbage-001":case"text-similarity-curie-001":case"text-similarity-davinci-001":return"r50k_base";case"gpt-3.5-turbo-instruct-0914":case"gpt-3.5-turbo-instruct":case"gpt-3.5-turbo-16k-0613":case"gpt-3.5-turbo-16k":case"gpt-3.5-turbo-0613":case"gpt-3.5-turbo-0301":case"gpt-3.5-turbo":case"gpt-4-32k-0613":case"gpt-4-32k-0314":case"gpt-4-32k":case"gpt-4-0613":case"gpt-4-0314":case"gpt-4":case"gpt-3.5-turbo-1106":case"gpt-35-turbo":case"gpt-4-1106-preview":case"gpt-4-vision-preview":case"gpt-3.5-turbo-0125":case"gpt-4-turbo":case"gpt-4-turbo-2024-04-09":case"gpt-4-turbo-preview":case"gpt-4-0125-preview":case"text-embedding-ada-002":case"text-embedding-3-small":case"text-embedding-3-large":return"cl100k_base";case"gpt-4o":case"gpt-4o-2024-05-13":case"gpt-4o-2024-08-06":case"gpt-4o-2024-11-20":case"gpt-4o-mini-2024-07-18":case"gpt-4o-mini":case"gpt-4o-search-preview":case"gpt-4o-search-preview-2025-03-11":case"gpt-4o-mini-search-preview":case"gpt-4o-mini-search-preview-2025-03-11":case"gpt-4o-audio-preview":case"gpt-4o-audio-preview-2024-12-17":case"gpt-4o-audio-preview-2024-10-01":case"gpt-4o-mini-audio-preview":case"gpt-4o-mini-audio-preview-2024-12-17":case"o1":case"o1-2024-12-17":case"o1-mini":case"o1-mini-2024-09-12":case"o1-preview":case"o1-preview-2024-09-12":case"o1-pro":case"o1-pro-2025-03-19":case"o3":case"o3-2025-04-16":case"o3-mini":case"o3-mini-2025-01-31":case"o4-mini":case"o4-mini-2025-04-16":case"chatgpt-4o-latest":case"gpt-4o-realtime":case"gpt-4o-realtime-preview-2024-10-01":case"gpt-4o-realtime-preview-2024-12-17":case"gpt-4o-mini-realtime-preview":case"gpt-4o-mini-realtime-preview-2024-12-17":case"gpt-4.1":case"gpt-4.1-2025-04-14":case"gpt-4.1-mini":case"gpt-4.1-mini-2025-04-14":case"gpt-4.1-nano":case"gpt-4.1-nano-2025-04-14":case"gpt-4.5-preview":case"gpt-4.5-preview-2025-02-27":case"gpt-5":case"gpt-5-2025-08-07":case"gpt-5-nano":case"gpt-5-nano-2025-08-07":case"gpt-5-mini":case"gpt-5-mini-2025-08-07":case"gpt-5-chat-latest":return"o200k_base";default:throw new Error("Unknown model")}}var Lo={},xb=new Hn({});async function lh(r){return r in Lo||(Lo[r]=xb.fetch(`https://tiktoken.pages.dev/js/${r}.json`).then(e=>e.json()).then(e=>new $o(e)).catch(e=>{throw delete Lo[r],e})),await Lo[r]}async function Fo(r){return lh(ec(r))}var Uo=r=>r.startsWith("gpt-3.5-turbo-16k")?"gpt-3.5-turbo-16k":r.startsWith("gpt-3.5-turbo-")?"gpt-3.5-turbo":r.startsWith("gpt-4-32k")?"gpt-4-32k":r.startsWith("gpt-4-")?"gpt-4":r.startsWith("gpt-4o")?"gpt-4o":r,vb=r=>{switch(r){case"text-embedding-ada-002":return 8191;default:return 2046}},ph=r=>{switch(Uo(r)){case"gpt-3.5-turbo-16k":return 16384;case"gpt-3.5-turbo":return 4096;case"gpt-4-32k":return 32768;case"gpt-4":return 8192;case"text-davinci-003":return 4097;case"text-curie-001":return 2048;case"text-babbage-001":return 2048;case"text-ada-001":return 2048;case"code-davinci-002":return 8e3;case"code-cushman-001":return 2048;default:return 4097}};function zo(r){return typeof r!="object"||!r?!1:!!("type"in r&&r.type==="function"&&"function"in r&&typeof r.function=="object"&&r.function&&"name"in r.function&&"parameters"in r.function)}var fh=async({prompt:r,modelName:e})=>{let t;try{t=(await Fo(Uo(e))).encode(r).length}catch{console.warn("Failed to calculate number of tokens, falling back to approximate count"),t=Math.ceil(r.length/4)}return ph(e)-t},Ab=()=>!1,Xn=class extends Z{get lc_attributes(){return{callbacks:void 0,verbose:void 0}}constructor(e){super(e),Object.defineProperty(this,"verbose",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"callbacks",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.verbose=e.verbose??Ab(),this.callbacks=e.callbacks,this.tags=e.tags??[],this.metadata=e.metadata??{}}},en=class extends Xn{get callKeys(){return["stop","timeout","signal","tags","metadata","callbacks"]}constructor({callbacks:e,callbackManager:t,...n}){let{cache:s,...i}=n;super({callbacks:e??t,...i}),Object.defineProperty(this,"caller",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_encoding",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),typeof s=="object"?this.cache=s:s?this.cache=di.global():this.cache=void 0,this.caller=new Hn(n??{})}async getNumTokens(e){let t;typeof e=="string"?t=e:t=e.map(s=>typeof s=="string"?s:s.type==="text"&&"text"in s?s.text:"").join("");let n=Math.ceil(t.length/4);if(!this._encoding)try{this._encoding=await Fo("modelName"in this?Uo(this.modelName):"gpt2")}catch(s){console.warn("Failed to calculate number of tokens, falling back to approximate count",s)}if(this._encoding)try{n=this._encoding.encode(t).length}catch(s){console.warn("Failed to calculate number of tokens, falling back to approximate count",s)}return n}static _convertInputToPromptValue(e){return typeof e=="string"?new Gf(e):Array.isArray(e)?new qf(e.map(Dt)):e}_identifyingParams(){return{}}_getSerializedCacheKeyParametersForCall({config:e,...t}){let n={...this._identifyingParams(),...t,_type:this._llmType(),_model:this._modelType()};return Object.entries(n).filter(([o,a])=>a!==void 0).map(([o,a])=>`${o}:${JSON.stringify(a)}`).sort().join(",")}serialize(){return{...this._identifyingParams(),_type:this._llmType(),_model:this._modelType()}}static async deserialize(e){throw new Error("Use .toJSON() instead")}};var ic={};re(ic,{BaseChatModel:()=>zt,SimpleChatModel:()=>sc,createChatMessageChunkEncoderStream:()=>Ob});var Ge=class extends Z{static lc_name(){return"RunnablePassthrough"}constructor(e){super(e),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","runnables"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"func",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),e&&(this.func=e.func)}async invoke(e,t){let n=ut(t);return this.func&&await this.func(e,n),this._callWithConfig(s=>Promise.resolve(s),e,n)}async*transform(e,t){let n=ut(t),s,i=!0;for await(let o of this._transformStreamWithConfig(e,a=>a,n))if(yield o,i)if(s===void 0)s=o;else try{s=or(s,o)}catch{s=void 0,i=!1}this.func&&s!==void 0&&await this.func(s,n)}static assign(e){return new Po(new Oo({steps:e}))}};function Ob(){let r=new TextEncoder;return new TransformStream({transform(e,t){t.enqueue(r.encode(typeof e.content=="string"?e.content:JSON.stringify(e.content)))}})}function nc(r){let e=[];for(let t of r){let n=t;if(Array.isArray(t.content))for(let s=0;s<t.content.length;s++){let i=t.content[s];(uf(i)||cf(i))&&n===t&&(n=new t.constructor({...n,content:[...t.content.slice(0,s),lf(i),...t.content.slice(s+1)]}))}e.push(n)}return e}var zt=class r extends en{constructor(e){super(e),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","chat_models",this._llmType()]}),Object.defineProperty(this,"disableStreaming",{enumerable:!0,configurable:!0,writable:!0,value:!1})}_separateRunnableConfigFromCallOptionsCompat(e){let[t,n]=super._separateRunnableConfigFromCallOptions(e);return n.signal=t.signal,[t,n]}async invoke(e,t){let n=r._convertInputToPromptValue(e);return(await this.generatePrompt([n],t,t?.callbacks)).generations[0][0].message}async*_streamResponseChunks(e,t,n){throw new Error("Not implemented.")}async*_streamIterator(e,t){if(this._streamResponseChunks===r.prototype._streamResponseChunks||this.disableStreaming)yield this.invoke(e,t);else{let s=r._convertInputToPromptValue(e).toChatMessages(),[i,o]=this._separateRunnableConfigFromCallOptionsCompat(t),a={...i.metadata,...this.getLsParams(o)},u=await at.configure(i.callbacks,this.callbacks,i.tags,this.tags,a,this.metadata,{verbose:this.verbose}),c={options:o,invocation_params:this?.invocationParams(o),batch_size:1},l=await u?.handleChatModelStart(this.toJSON(),[nc(s)],i.runId,void 0,c,void 0,void 0,i.runName),p,h;try{for await(let f of this._streamResponseChunks(s,o,l?.[0])){if(f.message.id==null){let g=l?.at(0)?.runId;g!=null&&f.message._updateId(`run-${g}`)}f.message.response_metadata={...f.generationInfo,...f.message.response_metadata},yield f.message,p?p=p.concat(f):p=f,ku(f.message)&&f.message.usage_metadata!==void 0&&(h={tokenUsage:{promptTokens:f.message.usage_metadata.input_tokens,completionTokens:f.message.usage_metadata.output_tokens,totalTokens:f.message.usage_metadata.total_tokens}})}}catch(f){throw await Promise.all((l??[]).map(g=>g?.handleLLMError(f))),f}await Promise.all((l??[]).map(f=>f?.handleLLMEnd({generations:[[p]],llmOutput:h})))}}getLsParams(e){let t=this.getName().startsWith("Chat")?this.getName().replace("Chat",""):this.getName();return{ls_model_type:"chat",ls_stop:e.stop,ls_provider:t}}async _generateUncached(e,t,n,s){let i=e.map(p=>p.map(Dt)),o;if(s!==void 0&&s.length===i.length)o=s;else{let p={...n.metadata,...this.getLsParams(t)},h=await at.configure(n.callbacks,this.callbacks,n.tags,this.tags,p,this.metadata,{verbose:this.verbose}),f={options:t,invocation_params:this?.invocationParams(t),batch_size:1};o=await h?.handleChatModelStart(this.toJSON(),i.map(nc),n.runId,void 0,f,void 0,void 0,n.runName)}let a=[],u=[];if(!!o?.[0].handlers.find(vo)&&!this.disableStreaming&&i.length===1&&this._streamResponseChunks!==r.prototype._streamResponseChunks)try{let p=await this._streamResponseChunks(i[0],t,o?.[0]),h,f;for await(let g of p){if(g.message.id==null){let b=o?.at(0)?.runId;b!=null&&g.message._updateId(`run-${b}`)}h===void 0?h=g:h=or(h,g),ku(g.message)&&g.message.usage_metadata!==void 0&&(f={tokenUsage:{promptTokens:g.message.usage_metadata.input_tokens,completionTokens:g.message.usage_metadata.output_tokens,totalTokens:g.message.usage_metadata.total_tokens}})}if(h===void 0)throw new Error("Received empty response from chat model call.");a.push([h]),await o?.[0].handleLLMEnd({generations:a,llmOutput:f})}catch(p){throw await o?.[0].handleLLMError(p),p}else{let p=await Promise.allSettled(i.map((h,f)=>this._generate(h,{...t,promptIndex:f},o?.[f])));await Promise.all(p.map(async(h,f)=>{if(h.status==="fulfilled"){let g=h.value;for(let b of g.generations){if(b.message.id==null){let _=o?.at(0)?.runId;_!=null&&b.message._updateId(`run-${_}`)}b.message.response_metadata={...b.generationInfo,...b.message.response_metadata}}return g.generations.length===1&&(g.generations[0].message.response_metadata={...g.llmOutput,...g.generations[0].message.response_metadata}),a[f]=g.generations,u[f]=g.llmOutput,o?.[f]?.handleLLMEnd({generations:[g.generations],llmOutput:g.llmOutput})}else return await o?.[f]?.handleLLMError(h.reason),Promise.reject(h.reason)}))}let l={generations:a,llmOutput:u.length?this._combineLLMOutput?.(...u):void 0};return Object.defineProperty(l,Wn,{value:o?{runIds:o?.map(p=>p.runId)}:void 0,configurable:!0}),l}async _generateCached({messages:e,cache:t,llmStringKey:n,parsedOptions:s,handledOptions:i}){let o=e.map(_=>_.map(Dt)),a={...i.metadata,...this.getLsParams(s)},u=await at.configure(i.callbacks,this.callbacks,i.tags,this.tags,a,this.metadata,{verbose:this.verbose}),c={options:s,invocation_params:this?.invocationParams(s),batch_size:1},l=await u?.handleChatModelStart(this.toJSON(),o.map(nc),i.runId,void 0,c,void 0,void 0,i.runName),p=[],f=(await Promise.allSettled(o.map(async(_,I)=>{let v=r._convertInputToPromptValue(_).toString(),S=await t.lookup(v,n);return S==null&&p.push(I),S}))).map((_,I)=>({result:_,runManager:l?.[I]})).filter(({result:_})=>_.status==="fulfilled"&&_.value!=null||_.status==="rejected"),g=[];await Promise.all(f.map(async({result:_,runManager:I},v)=>{if(_.status==="fulfilled"){let S=_.value;return g[v]=S.map(C=>("message"in C&&ve(C.message)&&jt(C.message)&&(C.message.usage_metadata={input_tokens:0,output_tokens:0,total_tokens:0}),C.generationInfo={...C.generationInfo,tokenUsage:{}},C)),S.length&&await I?.handleLLMNewToken(S[0].text),I?.handleLLMEnd({generations:[S]},void 0,void 0,void 0,{cached:!0})}else return await I?.handleLLMError(_.reason,void 0,void 0,void 0,{cached:!0}),Promise.reject(_.reason)}));let b={generations:g,missingPromptIndices:p,startedRunManagers:l};return Object.defineProperty(b,Wn,{value:l?{runIds:l?.map(_=>_.runId)}:void 0,configurable:!0}),b}async generate(e,t,n){let s;Array.isArray(t)?s={stop:t}:s=t;let i=e.map(g=>g.map(Dt)),[o,a]=this._separateRunnableConfigFromCallOptionsCompat(s);if(o.callbacks=o.callbacks??n,!this.cache)return this._generateUncached(i,a,o);let{cache:u}=this,c=this._getSerializedCacheKeyParametersForCall(a),{generations:l,missingPromptIndices:p,startedRunManagers:h}=await this._generateCached({messages:i,cache:u,llmStringKey:c,parsedOptions:a,handledOptions:o}),f={};if(p.length>0){let g=await this._generateUncached(p.map(b=>i[b]),a,o,h!==void 0?p.map(b=>h?.[b]):void 0);await Promise.all(g.generations.map(async(b,_)=>{let I=p[_];l[I]=b;let v=r._convertInputToPromptValue(i[I]).toString();return u.update(v,c,b)})),f=g.llmOutput??{}}return{generations:l,llmOutput:f}}invocationParams(e){return{}}_modelType(){return"base_chat_model"}serialize(){return{...this.invocationParams(),_type:this._llmType(),_model:this._modelType()}}async generatePrompt(e,t,n){let s=e.map(i=>i.toChatMessages());return this.generate(s,t,n)}async call(e,t,n){return(await this.generate([e.map(Dt)],t,n)).generations[0][0].message}async callPrompt(e,t,n){let s=e.toChatMessages();return this.call(s,t,n)}async predictMessages(e,t,n){return this.call(e,t,n)}async predict(e,t,n){let s=new ot(e),i=await this.call([s],t,n);if(typeof i.content!="string")throw new Error("Cannot use predict when output is not a string.");return i.content}withStructuredOutput(e,t){if(typeof this.bindTools!="function")throw new Error('Chat model must implement ".bindTools()" to use withStructuredOutput.');if(t?.strict)throw new Error('"strict" mode is not supported for this model by default.');let n=e,s=t?.name,i=$t(n)??"A function available to call.",o=t?.method,a=t?.includeRaw;if(o==="jsonMode")throw new Error('Base withStructuredOutput implementation only supports "functionCalling" as a method.');let u=s??"extract",c;Ze(n)?c=[{type:"function",function:{name:u,description:i,parameters:Ae(n)}}]:("name"in n&&(u=n.name),c=[{type:"function",function:{name:u,description:i,parameters:n}}]);let l=this.bindTools(c),p=Ft.from(b=>{if(!b.tool_calls||b.tool_calls.length===0)throw new Error("No tool calls found in the response.");let _=b.tool_calls.find(I=>I.name===u);if(!_)throw new Error(`No tool call found with name ${u}.`);return _.args});if(!a)return l.pipe(p).withConfig({runName:"StructuredOutput"});let h=Ge.assign({parsed:(b,_)=>p.invoke(b.raw,_)}),f=Ge.assign({parsed:()=>null}),g=h.withFallbacks({fallbacks:[f]});return Qe.from([{raw:l},g]).withConfig({runName:"StructuredOutputRunnable"})}},sc=class extends zt{async _generate(e,t,n){let s=await this._call(e,t,n),i=new ue(s);if(typeof i.content!="string")throw new Error("Cannot generate with a simple chat model when output is not a string.");return{generations:[{text:i.content,message:i}]}}};var oc={};re(oc,{BaseLLM:()=>gi,LLM:()=>Yn});var gi=class r extends en{constructor({concurrency:e,...t}){super(e?{maxConcurrency:e,...t}:t),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","llms",this._llmType()]})}async invoke(e,t){let n=r._convertInputToPromptValue(e);return(await this.generatePrompt([n],t,t?.callbacks)).generations[0][0].text}async*_streamResponseChunks(e,t,n){throw new Error("Not implemented.")}_separateRunnableConfigFromCallOptionsCompat(e){let[t,n]=super._separateRunnableConfigFromCallOptions(e);return n.signal=t.signal,[t,n]}async*_streamIterator(e,t){if(this._streamResponseChunks===r.prototype._streamResponseChunks)yield this.invoke(e,t);else{let n=r._convertInputToPromptValue(e),[s,i]=this._separateRunnableConfigFromCallOptionsCompat(t),o=await at.configure(s.callbacks,this.callbacks,s.tags,this.tags,s.metadata,this.metadata,{verbose:this.verbose}),a={options:i,invocation_params:this?.invocationParams(i),batch_size:1},u=await o?.handleLLMStart(this.toJSON(),[n.toString()],s.runId,void 0,a,void 0,void 0,s.runName),c=new oi({text:""});try{for await(let l of this._streamResponseChunks(n.toString(),i,u?.[0]))c?c=c.concat(l):c=l,typeof l.text=="string"&&(yield l.text)}catch(l){throw await Promise.all((u??[]).map(p=>p?.handleLLMError(l))),l}await Promise.all((u??[]).map(l=>l?.handleLLMEnd({generations:[[c]]})))}}async generatePrompt(e,t,n){let s=e.map(i=>i.toString());return this.generate(s,t,n)}invocationParams(e){return{}}_flattenLLMResult(e){let t=[];for(let n=0;n<e.generations.length;n+=1){let s=e.generations[n];if(n===0)t.push({generations:[s],llmOutput:e.llmOutput});else{let i=e.llmOutput?{...e.llmOutput,tokenUsage:{}}:void 0;t.push({generations:[s],llmOutput:i})}}return t}async _generateUncached(e,t,n,s){let i;if(s!==void 0&&s.length===e.length)i=s;else{let c=await at.configure(n.callbacks,this.callbacks,n.tags,this.tags,n.metadata,this.metadata,{verbose:this.verbose}),l={options:t,invocation_params:this?.invocationParams(t),batch_size:e.length};i=await c?.handleLLMStart(this.toJSON(),e,n.runId,void 0,l,void 0,void 0,n?.runName)}let o=!!i?.[0].handlers.find(vo),a;if(o&&e.length===1&&this._streamResponseChunks!==r.prototype._streamResponseChunks)try{let c=await this._streamResponseChunks(e[0],t,i?.[0]),l;for await(let p of c)l===void 0?l=p:l=or(l,p);if(l===void 0)throw new Error("Received empty response from chat model call.");a={generations:[[l]],llmOutput:{}},await i?.[0].handleLLMEnd(a)}catch(c){throw await i?.[0].handleLLMError(c),c}else{try{a=await this._generate(e,t,i?.[0])}catch(l){throw await Promise.all((i??[]).map(p=>p?.handleLLMError(l))),l}let c=this._flattenLLMResult(a);await Promise.all((i??[]).map((l,p)=>l?.handleLLMEnd(c[p])))}let u=i?.map(c=>c.runId)||void 0;return Object.defineProperty(a,Wn,{value:u?{runIds:u}:void 0,configurable:!0}),a}async _generateCached({prompts:e,cache:t,llmStringKey:n,parsedOptions:s,handledOptions:i,runId:o}){let a=await at.configure(i.callbacks,this.callbacks,i.tags,this.tags,i.metadata,this.metadata,{verbose:this.verbose}),u={options:s,invocation_params:this?.invocationParams(s),batch_size:e.length},c=await a?.handleLLMStart(this.toJSON(),e,o,void 0,u,void 0,void 0,i?.runName),l=[],h=(await Promise.allSettled(e.map(async(b,_)=>{let I=await t.lookup(b,n);return I==null&&l.push(_),I}))).map((b,_)=>({result:b,runManager:c?.[_]})).filter(({result:b})=>b.status==="fulfilled"&&b.value!=null||b.status==="rejected"),f=[];await Promise.all(h.map(async({result:b,runManager:_},I)=>{if(b.status==="fulfilled"){let v=b.value;return f[I]=v.map(S=>(S.generationInfo={...S.generationInfo,tokenUsage:{}},S)),v.length&&await _?.handleLLMNewToken(v[0].text),_?.handleLLMEnd({generations:[v]},void 0,void 0,void 0,{cached:!0})}else return await _?.handleLLMError(b.reason,void 0,void 0,void 0,{cached:!0}),Promise.reject(b.reason)}));let g={generations:f,missingPromptIndices:l,startedRunManagers:c};return Object.defineProperty(g,Wn,{value:c?{runIds:c?.map(b=>b.runId)}:void 0,configurable:!0}),g}async generate(e,t,n){if(!Array.isArray(e))throw new Error("Argument 'prompts' is expected to be a string[]");let s;Array.isArray(t)?s={stop:t}:s=t;let[i,o]=this._separateRunnableConfigFromCallOptionsCompat(s);if(i.callbacks=i.callbacks??n,!this.cache)return this._generateUncached(e,o,i);let{cache:a}=this,u=this._getSerializedCacheKeyParametersForCall(o),{generations:c,missingPromptIndices:l,startedRunManagers:p}=await this._generateCached({prompts:e,cache:a,llmStringKey:u,parsedOptions:o,handledOptions:i,runId:i.runId}),h={};if(l.length>0){let f=await this._generateUncached(l.map(g=>e[g]),o,i,p!==void 0?l.map(g=>p?.[g]):void 0);await Promise.all(f.generations.map(async(g,b)=>{let _=l[b];return c[_]=g,a.update(e[_],u,g)})),h=f.llmOutput??{}}return{generations:c,llmOutput:h}}async call(e,t,n){let{generations:s}=await this.generate([e],t,n);return s[0][0].text}async predict(e,t,n){return this.call(e,t,n)}async predictMessages(e,t,n){let s=xo(e),i=await this.call(s,t,n);return new ue(i)}_identifyingParams(){return{}}serialize(){return{...this._identifyingParams(),_type:this._llmType(),_model:this._modelType()}}_modelType(){return"base_llm"}},Yn=class extends gi{async _generate(e,t,n){return{generations:await Promise.all(e.map((i,o)=>this._call(i,{...t,promptIndex:o},n).then(a=>[{text:a}])))}}};var uc={};re(uc,{BaseMemory:()=>ac,getInputValue:()=>Pb,getOutputValue:()=>Eb,getPromptInputKey:()=>Ib});var ac=class{},hh=(r,e)=>{if(e!==void 0)return r[e];let t=Object.keys(r);if(t.length===1)return r[t[0]]},Pb=(r,e)=>{let t=hh(r,e);if(!t){let n=Object.keys(r);throw new Error(`input values have ${n.length} keys, you must specify an input key or pass only 1 key as input`)}return t},Eb=(r,e)=>{let t=hh(r,e);if(!t&&t!==""){let n=Object.keys(r);throw new Error(`output values have ${n.length} keys, you must specify an output key or pass only 1 key as output`)}return t};function Ib(r,e){let t=Object.keys(r).filter(n=>!e.includes(n)&&n!=="stop");if(t.length!==1)throw new Error(`One input key expected, but got ${t.length}`);return t[0]}var xc={};re(xc,{AsymmetricStructuredOutputParser:()=>gc,BaseCumulativeTransformOutputParser:()=>ur,BaseLLMOutputParser:()=>Ho,BaseOutputParser:()=>Bt,BaseTransformOutputParser:()=>Kt,BytesOutputParser:()=>lc,CommaSeparatedListOutputParser:()=>pc,CustomListOutputParser:()=>fc,JsonMarkdownStructuredOutputParser:()=>Vo,JsonOutputParser:()=>Zn,ListOutputParser:()=>tn,MarkdownListOutputParser:()=>dc,NumberedListOutputParser:()=>hc,OutputParserException:()=>qe,StringOutputParser:()=>mc,StructuredOutputParser:()=>rn,XMLOutputParser:()=>_c,XML_FORMAT_INSTRUCTIONS:()=>yc,parseJsonMarkdown:()=>yo,parsePartialJson:()=>_o,parseXMLMarkdown:()=>wc});var cc={};re(cc,{RouterRunnable:()=>Bo,Runnable:()=>Z,RunnableAssign:()=>Po,RunnableBinding:()=>vr,RunnableBranch:()=>Ko,RunnableEach:()=>Uf,RunnableLambda:()=>Ft,RunnableMap:()=>Oo,RunnableParallel:()=>Bf,RunnablePassthrough:()=>Ge,RunnablePick:()=>Wf,RunnableRetry:()=>zf,RunnableSequence:()=>Qe,RunnableToolLike:()=>Hf,RunnableWithFallbacks:()=>Kf,RunnableWithMessageHistory:()=>Wo,_coerceToRunnable:()=>Ne,ensureConfig:()=>ut,getCallbackManagerForConfig:()=>xr,mergeConfigs:()=>ze,patchConfig:()=>he,pickRunnableConfigKeys:()=>Kn});var Bo=class extends Z{static lc_name(){return"RouterRunnable"}constructor(e){super(e),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","runnables"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"runnables",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.runnables=e.runnables}async invoke(e,t){let{key:n,input:s}=e,i=this.runnables[n];if(i===void 0)throw new Error(`No runnable associated with key "${n}".`);return i.invoke(s,ut(t))}async batch(e,t,n){let s=e.map(h=>h.key),i=e.map(h=>h.input);if(s.find(h=>this.runnables[h]===void 0)!==void 0)throw new Error("One or more keys do not have a corresponding runnable.");let a=s.map(h=>this.runnables[h]),u=this._getOptionsList(t??{},e.length),c=u[0]?.maxConcurrency??n?.maxConcurrency,l=c&&c>0?c:e.length,p=[];for(let h=0;h<i.length;h+=l){let f=i.slice(h,h+l).map((b,_)=>a[_].invoke(b,u[_])),g=await Promise.all(f);p.push(g)}return p.flat()}async stream(e,t){let{key:n,input:s}=e,i=this.runnables[n];if(i===void 0)throw new Error(`No runnable associated with key "${n}".`);return i.stream(s,t)}};var Ko=class extends Z{static lc_name(){return"RunnableBranch"}constructor(e){super(e),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","runnables"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"default",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"branches",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.branches=e.branches,this.default=e.default}static from(e){if(e.length<1)throw new Error("RunnableBranch requires at least one branch");let n=e.slice(0,-1).map(([i,o])=>[Ne(i),Ne(o)]),s=Ne(e[e.length-1]);return new this({branches:n,default:s})}async _invoke(e,t,n){let s;for(let i=0;i<this.branches.length;i+=1){let[o,a]=this.branches[i];if(await o.invoke(e,he(t,{callbacks:n?.getChild(`condition:${i+1}`)}))){s=await a.invoke(e,he(t,{callbacks:n?.getChild(`branch:${i+1}`)}));break}}return s||(s=await this.default.invoke(e,he(t,{callbacks:n?.getChild("branch:default")}))),s}async invoke(e,t={}){return this._callWithConfig(this._invoke,e,t)}async*_streamIterator(e,t){let s=await(await xr(t))?.handleChainStart(this.toJSON(),Ff(e,"input"),t?.runId,void 0,void 0,void 0,t?.runName),i,o=!0,a;try{for(let u=0;u<this.branches.length;u+=1){let[c,l]=this.branches[u];if(await c.invoke(e,he(t,{callbacks:s?.getChild(`condition:${u+1}`)}))){a=await l.stream(e,he(t,{callbacks:s?.getChild(`branch:${u+1}`)}));for await(let h of a)if(yield h,o)if(i===void 0)i=h;else try{i=or(i,h)}catch{i=void 0,o=!1}break}}if(a===void 0){a=await this.default.stream(e,he(t,{callbacks:s?.getChild("branch:default")}));for await(let u of a)if(yield u,o)if(i===void 0)i=u;else try{i=or(i,u)}catch{i=void 0,o=!1}}}catch(u){throw await s?.handleChainError(u),u}await s?.handleChainEnd(i??{})}};var Wo=class extends vr{constructor(e){let t=Ft.from((o,a)=>this._enterHistory(o,a??{})).withConfig({runName:"loadHistory"}),n=e.historyMessagesKey??e.inputMessagesKey;n&&(t=Ge.assign({[n]:t}).withConfig({runName:"insertHistory"}));let s=t.pipe(e.runnable.withListeners({onEnd:(o,a)=>this._exitHistory(o,a??{})})).withConfig({runName:"RunnableWithMessageHistory"}),i=e.config??{};super({...e,config:i,bound:s}),Object.defineProperty(this,"runnable",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"inputMessagesKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"outputMessagesKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"historyMessagesKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"getMessageHistory",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.runnable=e.runnable,this.getMessageHistory=e.getMessageHistory,this.inputMessagesKey=e.inputMessagesKey,this.outputMessagesKey=e.outputMessagesKey,this.historyMessagesKey=e.historyMessagesKey}_getInputMessages(e){let t;if(typeof e=="object"&&!Array.isArray(e)&&!ve(e)){let n;this.inputMessagesKey?n=this.inputMessagesKey:Object.keys(e).length===1?n=Object.keys(e)[0]:n="input",Array.isArray(e[n])&&Array.isArray(e[n][0])?t=e[n][0]:t=e[n]}else t=e;if(typeof t=="string")return[new ot(t)];if(Array.isArray(t))return t;if(ve(t))return[t];throw new Error(`Expected a string, BaseMessage, or array of BaseMessages.
10
- Got ${JSON.stringify(t,null,2)}`)}_getOutputMessages(e){let t;if(!Array.isArray(e)&&!ve(e)&&typeof e!="string"){let n;this.outputMessagesKey!==void 0?n=this.outputMessagesKey:Object.keys(e).length===1?n=Object.keys(e)[0]:n="output",e.generations!==void 0?t=e.generations[0][0].message:t=e[n]}else t=e;if(typeof t=="string")return[new ue(t)];if(Array.isArray(t))return t;if(ve(t))return[t];throw new Error(`Expected a string, BaseMessage, or array of BaseMessages. Received: ${JSON.stringify(t,null,2)}`)}async _enterHistory(e,t){let s=await(t?.configurable?.messageHistory).getMessages();return this.historyMessagesKey===void 0?s.concat(this._getInputMessages(e)):s}async _exitHistory(e,t){let n=t.configurable?.messageHistory,s;Array.isArray(e.inputs)&&Array.isArray(e.inputs[0])?s=e.inputs[0]:s=e.inputs;let i=this._getInputMessages(s);if(this.historyMessagesKey===void 0){let u=await n.getMessages();i=i.slice(u.length)}let o=e.outputs;if(!o)throw new Error(`Output values from 'Run' undefined. Run: ${JSON.stringify(e,null,2)}`);let a=this._getOutputMessages(o);await n.addMessages([...i,...a])}async _mergeConfig(...e){let t=await super._mergeConfig(...e);if(!t.configurable||!t.configurable.sessionId){let s={[this.inputMessagesKey??"input"]:"foo"},i={configurable:{sessionId:"123"}};throw new Error(`sessionId is required. Pass it in as part of the config argument to .invoke() or .stream()
11
- eg. chain.invoke(${JSON.stringify(s)}, ${JSON.stringify(i)})`)}let{sessionId:n}=t.configurable;return t.configurable.messageHistory=await this.getMessageHistory(n),t}};var Ho=class extends Z{parseResultWithPrompt(e,t,n){return this.parseResult(e,n)}_baseMessageToString(e){return typeof e.content=="string"?e.content:this._baseMessageContentToString(e.content)}_baseMessageContentToString(e){return JSON.stringify(e)}async invoke(e,t){return typeof e=="string"?this._callWithConfig(async(n,s)=>this.parseResult([{text:n}],s?.callbacks),e,{...t,runType:"parser"}):this._callWithConfig(async(n,s)=>this.parseResult([{message:n,text:this._baseMessageToString(n)}],s?.callbacks),e,{...t,runType:"parser"})}},Bt=class extends Ho{parseResult(e,t){return this.parse(e[0].text,t)}async parseWithPrompt(e,t,n){return this.parse(e,n)}_type(){throw new Error("_type not implemented")}},qe=class extends Error{constructor(e,t,n,s=!1){if(super(e),Object.defineProperty(this,"llmOutput",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"observation",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sendToLLM",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.llmOutput=t,this.observation=n,this.sendToLLM=s,s&&(n===void 0||t===void 0))throw new Error("Arguments 'observation' & 'llmOutput' are required if 'sendToLlm' is true");of(this,"OUTPUT_PARSING_FAILURE")}};var Kt=class extends Bt{async*_transform(e){for await(let t of e)typeof t=="string"?yield this.parseResult([{text:t}]):yield this.parseResult([{message:t,text:this._baseMessageToString(t)}])}async*transform(e,t){yield*this._transformStreamWithConfig(e,this._transform.bind(this),{...t,runType:"parser"})}},ur=class extends Kt{constructor(e){super(e),Object.defineProperty(this,"diff",{enumerable:!0,configurable:!0,writable:!0,value:!1}),this.diff=e?.diff??this.diff}async*_transform(e){let t,n;for await(let s of e){if(typeof s!="string"&&typeof s.content!="string")throw new Error("Cannot handle non-string output.");let i;if(ii(s)){if(typeof s.content!="string")throw new Error("Cannot handle non-string message output.");i=new ht({message:s,text:s.content})}else if(ve(s)){if(typeof s.content!="string")throw new Error("Cannot handle non-string message output.");i=new ht({message:bf(s),text:s.content})}else i=new oi({text:s});n===void 0?n=i:n=n.concat(i);let o=await this.parsePartialResult([n]);o!=null&&!Mf(o,t)&&(this.diff?yield this._diff(t,o):yield o,t=o)}}getFormatInstructions(){return""}};var lc=class extends Kt{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers","bytes"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"textEncoder",{enumerable:!0,configurable:!0,writable:!0,value:new TextEncoder})}static lc_name(){return"BytesOutputParser"}parse(e){return Promise.resolve(this.textEncoder.encode(e))}getFormatInstructions(){return""}};var tn=class extends Kt{constructor(){super(...arguments),Object.defineProperty(this,"re",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}async*_transform(e){let t="";for await(let n of e)if(typeof n=="string"?t+=n:t+=n.content,this.re){let s=[...t.matchAll(this.re)];if(s.length>1){let i=0;for(let o of s.slice(0,-1))yield[o[1]],i+=(o.index??0)+o[0].length;t=t.slice(i)}}else{let s=await this.parse(t);if(s.length>1){for(let i of s.slice(0,-1))yield[i];t=s[s.length-1]}}for(let n of await this.parse(t))yield[n]}},pc=class extends tn{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers","list"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0})}static lc_name(){return"CommaSeparatedListOutputParser"}async parse(e){try{return e.trim().split(",").map(t=>t.trim())}catch{throw new qe(`Could not parse output: ${e}`,e)}}getFormatInstructions(){return"Your response should be a list of comma separated values, eg: `foo, bar, baz`"}},fc=class extends tn{constructor({length:e,separator:t}){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers","list"]}),Object.defineProperty(this,"length",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"separator",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.length=e,this.separator=t||","}async parse(e){try{let t=e.trim().split(this.separator).map(n=>n.trim());if(this.length!==void 0&&t.length!==this.length)throw new qe(`Incorrect number of items. Expected ${this.length}, got ${t.length}.`);return t}catch(t){throw Object.getPrototypeOf(t)===qe.prototype?t:new qe(`Could not parse output: ${e}`)}}getFormatInstructions(){return`Your response should be a list of ${this.length===void 0?"":`${this.length} `}items separated by "${this.separator}" (eg: \`foo${this.separator} bar${this.separator} baz\`)`}},hc=class extends tn{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers","list"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"re",{enumerable:!0,configurable:!0,writable:!0,value:/\d+\.\s([^\n]+)/g})}static lc_name(){return"NumberedListOutputParser"}getFormatInstructions(){return`Your response should be a numbered list with each item on a new line. For example:
5
+ `),super(n),Object.defineProperty(this,"lc_error_code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.lc_error_code=t?.lc_error_code}},Io=class extends ur{get is_bubble_up(){return!0}},ko=class extends ur{constructor(e,t){super(e,t),this.name="GraphRecursionError"}static get unminifiable_name(){return"GraphRecursionError"}},Gn=class extends ur{constructor(e,t){super(e,t),this.name="GraphValueError"}static get unminifiable_name(){return"GraphValueError"}},Or=class extends Io{constructor(e,t){super(JSON.stringify(e,null,2),t),Object.defineProperty(this,"interrupts",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="GraphInterrupt",this.interrupts=e??[]}static get unminifiable_name(){return"GraphInterrupt"}},pi=class extends Or{constructor(e,t){super([{value:e}],t),this.name="NodeInterrupt"}static get unminifiable_name(){return"NodeInterrupt"}},fi=class extends Io{constructor(e){super(),Object.defineProperty(this,"command",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="ParentCommand",this.command=e}static get unminifiable_name(){return"ParentCommand"}};function eh(r){return r!==void 0&&r.name===fi.unminifiable_name}function qn(r){return r!==void 0&&r.is_bubble_up===!0}function Pr(r){return r!==void 0&&[Or.unminifiable_name,pi.unminifiable_name].includes(r.name)}var hi=class extends ur{constructor(e,t){super(e,t),this.name="EmptyInputError"}static get unminifiable_name(){return"EmptyInputError"}},se=class extends ur{constructor(e,t){super(e,t),this.name="EmptyChannelError"}static get unminifiable_name(){return"EmptyChannelError"}},X=class extends ur{constructor(e,t){super(e,t),this.name="InvalidUpdateError"}static get unminifiable_name(){return"InvalidUpdateError"}};var So=class extends ur{constructor(e,t){super(e,t),this.name="UnreachableNodeError"}static get unminifiable_name(){return"UnreachableNodeError"}};function Co(r){return rf({clockseq:r})}function Er(r,e){let t=e.replace(/-/g,"").match(/.{2}/g).map(n=>parseInt(n,16));return tf(r,new Uint8Array(t))}var To="__pregel_tasks",th="__error__",Jn="__scheduled__",rh="__interrupt__",nh="__resume__";var sh=[];var cl={};ne(cl,{agents:()=>ih,caches:()=>Hu,callbacks__base:()=>Pf,callbacks__manager:()=>Tf,callbacks__promises:()=>Cf,chat_history:()=>Gu,documents:()=>Ju,embeddings:()=>Xu,example_selectors:()=>tc,language_models__base:()=>oc,language_models__chat_models:()=>cc,language_models__llms:()=>lc,load__serializable:()=>cf,memory:()=>fc,messages:()=>Xf,output_parsers:()=>Pc,outputs:()=>Mf,prompt_values:()=>Qf,prompts:()=>kc,retrievers:()=>Sc,runnables:()=>hc,stores:()=>Tc,tools:()=>Nc,tracers__base:()=>Ef,tracers__console:()=>If,tracers__initialize:()=>Mc,tracers__log_stream:()=>jf,tracers__run_collector:()=>$c,tracers__tracer_langchain:()=>Sf,tracers__tracer_langchain_v1:()=>jc,utils__async_caller:()=>Df,utils__chunk_array:()=>Lc,utils__env:()=>Af,utils__function_calling:()=>Uc,utils__hash:()=>Wu,utils__json_patch:()=>xc,utils__json_schema:()=>Bf,utils__math:()=>Bc,utils__stream:()=>Nf,utils__testing:()=>al,utils__tiktoken:()=>ic,utils__types:()=>ul,vectorstores:()=>Wc});var ih={};var Hu={};ne(Hu,{BaseCache:()=>jo,InMemoryCache:()=>di,deserializeStoredGeneration:()=>cb,getCacheKey:()=>uh,serializeGeneration:()=>lb});var Wu={};ne(Wu,{insecureHash:()=>Ro,sha256:()=>ah});var ob=typeof window=="object"?window:{},H="0123456789abcdef".split(""),ab=[-2147483648,8388608,32768,128],dt=[24,16,8,0];var Oe=[];function mt(r){r?(Oe[0]=Oe[16]=Oe[1]=Oe[2]=Oe[3]=Oe[4]=Oe[5]=Oe[6]=Oe[7]=Oe[8]=Oe[9]=Oe[10]=Oe[11]=Oe[12]=Oe[13]=Oe[14]=Oe[15]=0,this.blocks=Oe):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],this.h0=1732584193,this.h1=4023233417,this.h2=2562383102,this.h3=271733878,this.h4=3285377520,this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0}mt.prototype.update=function(r){if(!this.finalized){var e=typeof r!="string";e&&r.constructor===ob.ArrayBuffer&&(r=new Uint8Array(r));for(var t,n=0,s,i=r.length||0,o=this.blocks;n<i;){if(this.hashed&&(this.hashed=!1,o[0]=this.block,o[16]=o[1]=o[2]=o[3]=o[4]=o[5]=o[6]=o[7]=o[8]=o[9]=o[10]=o[11]=o[12]=o[13]=o[14]=o[15]=0),e)for(s=this.start;n<i&&s<64;++n)o[s>>2]|=r[n]<<dt[s++&3];else for(s=this.start;n<i&&s<64;++n)t=r.charCodeAt(n),t<128?o[s>>2]|=t<<dt[s++&3]:t<2048?(o[s>>2]|=(192|t>>6)<<dt[s++&3],o[s>>2]|=(128|t&63)<<dt[s++&3]):t<55296||t>=57344?(o[s>>2]|=(224|t>>12)<<dt[s++&3],o[s>>2]|=(128|t>>6&63)<<dt[s++&3],o[s>>2]|=(128|t&63)<<dt[s++&3]):(t=65536+((t&1023)<<10|r.charCodeAt(++n)&1023),o[s>>2]|=(240|t>>18)<<dt[s++&3],o[s>>2]|=(128|t>>12&63)<<dt[s++&3],o[s>>2]|=(128|t>>6&63)<<dt[s++&3],o[s>>2]|=(128|t&63)<<dt[s++&3]);this.lastByteIndex=s,this.bytes+=s-this.start,s>=64?(this.block=o[16],this.start=s-64,this.hash(),this.hashed=!0):this.start=s}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}};mt.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var r=this.blocks,e=this.lastByteIndex;r[16]=this.block,r[e>>2]|=ab[e&3],this.block=r[16],e>=56&&(this.hashed||this.hash(),r[0]=this.block,r[16]=r[1]=r[2]=r[3]=r[4]=r[5]=r[6]=r[7]=r[8]=r[9]=r[10]=r[11]=r[12]=r[13]=r[14]=r[15]=0),r[14]=this.hBytes<<3|this.bytes>>>29,r[15]=this.bytes<<3,this.hash()}};mt.prototype.hash=function(){var r=this.h0,e=this.h1,t=this.h2,n=this.h3,s=this.h4,i,o,a,u=this.blocks;for(o=16;o<80;++o)a=u[o-3]^u[o-8]^u[o-14]^u[o-16],u[o]=a<<1|a>>>31;for(o=0;o<20;o+=5)i=e&t|~e&n,a=r<<5|r>>>27,s=a+i+s+1518500249+u[o]<<0,e=e<<30|e>>>2,i=r&e|~r&t,a=s<<5|s>>>27,n=a+i+n+1518500249+u[o+1]<<0,r=r<<30|r>>>2,i=s&r|~s&e,a=n<<5|n>>>27,t=a+i+t+1518500249+u[o+2]<<0,s=s<<30|s>>>2,i=n&s|~n&r,a=t<<5|t>>>27,e=a+i+e+1518500249+u[o+3]<<0,n=n<<30|n>>>2,i=t&n|~t&s,a=e<<5|e>>>27,r=a+i+r+1518500249+u[o+4]<<0,t=t<<30|t>>>2;for(;o<40;o+=5)i=e^t^n,a=r<<5|r>>>27,s=a+i+s+1859775393+u[o]<<0,e=e<<30|e>>>2,i=r^e^t,a=s<<5|s>>>27,n=a+i+n+1859775393+u[o+1]<<0,r=r<<30|r>>>2,i=s^r^e,a=n<<5|n>>>27,t=a+i+t+1859775393+u[o+2]<<0,s=s<<30|s>>>2,i=n^s^r,a=t<<5|t>>>27,e=a+i+e+1859775393+u[o+3]<<0,n=n<<30|n>>>2,i=t^n^s,a=e<<5|e>>>27,r=a+i+r+1859775393+u[o+4]<<0,t=t<<30|t>>>2;for(;o<60;o+=5)i=e&t|e&n|t&n,a=r<<5|r>>>27,s=a+i+s-1894007588+u[o]<<0,e=e<<30|e>>>2,i=r&e|r&t|e&t,a=s<<5|s>>>27,n=a+i+n-1894007588+u[o+1]<<0,r=r<<30|r>>>2,i=s&r|s&e|r&e,a=n<<5|n>>>27,t=a+i+t-1894007588+u[o+2]<<0,s=s<<30|s>>>2,i=n&s|n&r|s&r,a=t<<5|t>>>27,e=a+i+e-1894007588+u[o+3]<<0,n=n<<30|n>>>2,i=t&n|t&s|n&s,a=e<<5|e>>>27,r=a+i+r-1894007588+u[o+4]<<0,t=t<<30|t>>>2;for(;o<80;o+=5)i=e^t^n,a=r<<5|r>>>27,s=a+i+s-899497514+u[o]<<0,e=e<<30|e>>>2,i=r^e^t,a=s<<5|s>>>27,n=a+i+n-899497514+u[o+1]<<0,r=r<<30|r>>>2,i=s^r^e,a=n<<5|n>>>27,t=a+i+t-899497514+u[o+2]<<0,s=s<<30|s>>>2,i=n^s^r,a=t<<5|t>>>27,e=a+i+e-899497514+u[o+3]<<0,n=n<<30|n>>>2,i=t^n^s,a=e<<5|e>>>27,r=a+i+r-899497514+u[o+4]<<0,t=t<<30|t>>>2;this.h0=this.h0+r<<0,this.h1=this.h1+e<<0,this.h2=this.h2+t<<0,this.h3=this.h3+n<<0,this.h4=this.h4+s<<0};mt.prototype.hex=function(){this.finalize();var r=this.h0,e=this.h1,t=this.h2,n=this.h3,s=this.h4;return H[r>>28&15]+H[r>>24&15]+H[r>>20&15]+H[r>>16&15]+H[r>>12&15]+H[r>>8&15]+H[r>>4&15]+H[r&15]+H[e>>28&15]+H[e>>24&15]+H[e>>20&15]+H[e>>16&15]+H[e>>12&15]+H[e>>8&15]+H[e>>4&15]+H[e&15]+H[t>>28&15]+H[t>>24&15]+H[t>>20&15]+H[t>>16&15]+H[t>>12&15]+H[t>>8&15]+H[t>>4&15]+H[t&15]+H[n>>28&15]+H[n>>24&15]+H[n>>20&15]+H[n>>16&15]+H[n>>12&15]+H[n>>8&15]+H[n>>4&15]+H[n&15]+H[s>>28&15]+H[s>>24&15]+H[s>>20&15]+H[s>>16&15]+H[s>>12&15]+H[s>>8&15]+H[s>>4&15]+H[s&15]};mt.prototype.toString=mt.prototype.hex;mt.prototype.digest=function(){this.finalize();var r=this.h0,e=this.h1,t=this.h2,n=this.h3,s=this.h4;return[r>>24&255,r>>16&255,r>>8&255,r&255,e>>24&255,e>>16&255,e>>8&255,e&255,t>>24&255,t>>16&255,t>>8&255,t&255,n>>24&255,n>>16&255,n>>8&255,n&255,s>>24&255,s>>16&255,s>>8&255,s&255]};mt.prototype.array=mt.prototype.digest;mt.prototype.arrayBuffer=function(){this.finalize();var r=new ArrayBuffer(20),e=new DataView(r);return e.setUint32(0,this.h0),e.setUint32(4,this.h1),e.setUint32(8,this.h2),e.setUint32(12,this.h3),e.setUint32(16,this.h4),r};var oh=!1,Ro=r=>(oh||(console.warn(["The default method for hashing keys is insecure and will be replaced in a future version,","but hasn't been replaced yet as to not break existing caches. It's recommended that you use","a more secure hashing algorithm to avoid cache poisoning.","","See this page for more information:","|","\u2514> https://js.langchain.com/docs/troubleshooting/warnings/insecure-cache-algorithm"].join(`
6
+ `)),oh=!0),new mt(!0).update(r).hex());var M="0123456789abcdef".split(""),ub=[-2147483648,8388608,32768,128],gt=[24,16,8,0],No=[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];var Pe=[];function bt(r,e){e?(Pe[0]=Pe[16]=Pe[1]=Pe[2]=Pe[3]=Pe[4]=Pe[5]=Pe[6]=Pe[7]=Pe[8]=Pe[9]=Pe[10]=Pe[11]=Pe[12]=Pe[13]=Pe[14]=Pe[15]=0,this.blocks=Pe):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],r?(this.h0=3238371032,this.h1=914150663,this.h2=812702999,this.h3=4144912697,this.h4=4290775857,this.h5=1750603025,this.h6=1694076839,this.h7=3204075428):(this.h0=1779033703,this.h1=3144134277,this.h2=1013904242,this.h3=2773480762,this.h4=1359893119,this.h5=2600822924,this.h6=528734635,this.h7=1541459225),this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0,this.is224=r}bt.prototype.update=function(r){if(!this.finalized){var e,t=typeof r;if(t!=="string"){if(t==="object"){if(r===null)throw new Error(ERROR);if(ARRAY_BUFFER&&r.constructor===ArrayBuffer)r=new Uint8Array(r);else if(!Array.isArray(r)&&(!ARRAY_BUFFER||!ArrayBuffer.isView(r)))throw new Error(ERROR)}else throw new Error(ERROR);e=!0}for(var n,s=0,i,o=r.length,a=this.blocks;s<o;){if(this.hashed&&(this.hashed=!1,a[0]=this.block,this.block=a[16]=a[1]=a[2]=a[3]=a[4]=a[5]=a[6]=a[7]=a[8]=a[9]=a[10]=a[11]=a[12]=a[13]=a[14]=a[15]=0),e)for(i=this.start;s<o&&i<64;++s)a[i>>>2]|=r[s]<<gt[i++&3];else for(i=this.start;s<o&&i<64;++s)n=r.charCodeAt(s),n<128?a[i>>>2]|=n<<gt[i++&3]:n<2048?(a[i>>>2]|=(192|n>>>6)<<gt[i++&3],a[i>>>2]|=(128|n&63)<<gt[i++&3]):n<55296||n>=57344?(a[i>>>2]|=(224|n>>>12)<<gt[i++&3],a[i>>>2]|=(128|n>>>6&63)<<gt[i++&3],a[i>>>2]|=(128|n&63)<<gt[i++&3]):(n=65536+((n&1023)<<10|r.charCodeAt(++s)&1023),a[i>>>2]|=(240|n>>>18)<<gt[i++&3],a[i>>>2]|=(128|n>>>12&63)<<gt[i++&3],a[i>>>2]|=(128|n>>>6&63)<<gt[i++&3],a[i>>>2]|=(128|n&63)<<gt[i++&3]);this.lastByteIndex=i,this.bytes+=i-this.start,i>=64?(this.block=a[16],this.start=i-64,this.hash(),this.hashed=!0):this.start=i}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}};bt.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var r=this.blocks,e=this.lastByteIndex;r[16]=this.block,r[e>>>2]|=ub[e&3],this.block=r[16],e>=56&&(this.hashed||this.hash(),r[0]=this.block,r[16]=r[1]=r[2]=r[3]=r[4]=r[5]=r[6]=r[7]=r[8]=r[9]=r[10]=r[11]=r[12]=r[13]=r[14]=r[15]=0),r[14]=this.hBytes<<3|this.bytes>>>29,r[15]=this.bytes<<3,this.hash()}};bt.prototype.hash=function(){var r=this.h0,e=this.h1,t=this.h2,n=this.h3,s=this.h4,i=this.h5,o=this.h6,a=this.h7,u=this.blocks,c,l,p,h,f,g,b,_,P,v,S;for(c=16;c<64;++c)f=u[c-15],l=(f>>>7|f<<25)^(f>>>18|f<<14)^f>>>3,f=u[c-2],p=(f>>>17|f<<15)^(f>>>19|f<<13)^f>>>10,u[c]=u[c-16]+l+u[c-7]+p<<0;for(S=e&t,c=0;c<64;c+=4)this.first?(this.is224?(_=300032,f=u[0]-1413257819,a=f-150054599<<0,n=f+24177077<<0):(_=704751109,f=u[0]-210244248,a=f-1521486534<<0,n=f+143694565<<0),this.first=!1):(l=(r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10),p=(s>>>6|s<<26)^(s>>>11|s<<21)^(s>>>25|s<<7),_=r&e,h=_^r&t^S,b=s&i^~s&o,f=a+p+b+No[c]+u[c],g=l+h,a=n+f<<0,n=f+g<<0),l=(n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10),p=(a>>>6|a<<26)^(a>>>11|a<<21)^(a>>>25|a<<7),P=n&r,h=P^n&e^_,b=o&a^~o&s,f=i+p+b+No[c+1]+u[c+1],g=l+h,o=t+f<<0,t=f+g<<0,l=(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10),p=(o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7),v=t&n,h=v^t&r^P,b=i&o^~i&a,f=s+p+b+No[c+2]+u[c+2],g=l+h,i=e+f<<0,e=f+g<<0,l=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10),p=(i>>>6|i<<26)^(i>>>11|i<<21)^(i>>>25|i<<7),S=e&t,h=S^e&n^v,b=i&o^~i&a,f=s+p+b+No[c+3]+u[c+3],g=l+h,s=r+f<<0,r=f+g<<0,this.chromeBugWorkAround=!0;this.h0=this.h0+r<<0,this.h1=this.h1+e<<0,this.h2=this.h2+t<<0,this.h3=this.h3+n<<0,this.h4=this.h4+s<<0,this.h5=this.h5+i<<0,this.h6=this.h6+o<<0,this.h7=this.h7+a<<0};bt.prototype.hex=function(){this.finalize();var r=this.h0,e=this.h1,t=this.h2,n=this.h3,s=this.h4,i=this.h5,o=this.h6,a=this.h7,u=M[r>>>28&15]+M[r>>>24&15]+M[r>>>20&15]+M[r>>>16&15]+M[r>>>12&15]+M[r>>>8&15]+M[r>>>4&15]+M[r&15]+M[e>>>28&15]+M[e>>>24&15]+M[e>>>20&15]+M[e>>>16&15]+M[e>>>12&15]+M[e>>>8&15]+M[e>>>4&15]+M[e&15]+M[t>>>28&15]+M[t>>>24&15]+M[t>>>20&15]+M[t>>>16&15]+M[t>>>12&15]+M[t>>>8&15]+M[t>>>4&15]+M[t&15]+M[n>>>28&15]+M[n>>>24&15]+M[n>>>20&15]+M[n>>>16&15]+M[n>>>12&15]+M[n>>>8&15]+M[n>>>4&15]+M[n&15]+M[s>>>28&15]+M[s>>>24&15]+M[s>>>20&15]+M[s>>>16&15]+M[s>>>12&15]+M[s>>>8&15]+M[s>>>4&15]+M[s&15]+M[i>>>28&15]+M[i>>>24&15]+M[i>>>20&15]+M[i>>>16&15]+M[i>>>12&15]+M[i>>>8&15]+M[i>>>4&15]+M[i&15]+M[o>>>28&15]+M[o>>>24&15]+M[o>>>20&15]+M[o>>>16&15]+M[o>>>12&15]+M[o>>>8&15]+M[o>>>4&15]+M[o&15];return this.is224||(u+=M[a>>>28&15]+M[a>>>24&15]+M[a>>>20&15]+M[a>>>16&15]+M[a>>>12&15]+M[a>>>8&15]+M[a>>>4&15]+M[a&15]),u};bt.prototype.toString=bt.prototype.hex;bt.prototype.digest=function(){this.finalize();var r=this.h0,e=this.h1,t=this.h2,n=this.h3,s=this.h4,i=this.h5,o=this.h6,a=this.h7,u=[r>>>24&255,r>>>16&255,r>>>8&255,r&255,e>>>24&255,e>>>16&255,e>>>8&255,e&255,t>>>24&255,t>>>16&255,t>>>8&255,t&255,n>>>24&255,n>>>16&255,n>>>8&255,n&255,s>>>24&255,s>>>16&255,s>>>8&255,s&255,i>>>24&255,i>>>16&255,i>>>8&255,i&255,o>>>24&255,o>>>16&255,o>>>8&255,o&255];return this.is224||u.push(a>>>24&255,a>>>16&255,a>>>8&255,a&255),u};bt.prototype.array=bt.prototype.digest;bt.prototype.arrayBuffer=function(){this.finalize();var r=new ArrayBuffer(this.is224?28:32),e=new DataView(r);return e.setUint32(0,this.h0),e.setUint32(4,this.h1),e.setUint32(8,this.h2),e.setUint32(12,this.h3),e.setUint32(16,this.h4),e.setUint32(20,this.h5),e.setUint32(24,this.h6),this.is224||e.setUint32(28,this.h7),r};var ah=(...r)=>new bt(!1,!0).update(r.join("")).hex();var uh=(...r)=>Ro(r.join("_"));function cb(r){return r.message!==void 0?{text:r.text,message:wf(r.message)}:{text:r.text}}function lb(r){let e={text:r.text};return r.message!==void 0&&(e.message=r.message.toDict()),e}var jo=class{constructor(){Object.defineProperty(this,"keyEncoder",{enumerable:!0,configurable:!0,writable:!0,value:uh})}makeDefaultKeyEncoder(e){this.keyEncoder=e}},pb=new Map,di=class r extends jo{constructor(e){super(),Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cache=e??new Map}lookup(e,t){return Promise.resolve(this.cache.get(this.keyEncoder(e,t))??null)}async update(e,t,n){this.cache.set(this.keyEncoder(e,t),n)}static global(){return new r(pb)}};var Gu={};ne(Gu,{BaseChatMessageHistory:()=>mi,BaseListChatMessageHistory:()=>Xn,InMemoryChatMessageHistory:()=>Vu});var mi=class extends or{async addMessages(e){for(let t of e)await this.addMessage(t)}},Xn=class extends or{addUserMessage(e){return this.addMessage(new ot(e))}addAIChatMessage(e){return this.addMessage(new ce(e))}addAIMessage(e){return this.addMessage(new ce(e))}async addMessages(e){for(let t of e)await this.addMessage(t)}clear(){throw new Error("Not implemented.")}},Vu=class extends Xn{constructor(e){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","stores","message","in_memory"]}),Object.defineProperty(this,"messages",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.messages=e??[]}async getMessages(){return this.messages}async addMessage(e){this.messages.push(e)}async clear(){this.messages=[]}};var Ju={};ne(Ju,{BaseDocumentTransformer:()=>Mo,Document:()=>yt,MappingDocumentTransformer:()=>qu});var yt=class{constructor(e){Object.defineProperty(this,"pageContent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.pageContent=e.pageContent!==void 0?e.pageContent.toString():"",this.metadata=e.metadata??{},this.id=e.id}};var Mo=class extends Z{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","documents","transformers"]})}invoke(e,t){return this.transformDocuments(e)}},qu=class extends Mo{async transformDocuments(e){let t=[];for(let n of e){let s=await this._transformDocument(n);t.push(s)}return t}};var Xu={};ne(Xu,{Embeddings:()=>Ir});var Ir=class{constructor(e){Object.defineProperty(this,"caller",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.caller=new Vn(e??{})}};var tc={};ne(tc,{BaseExampleSelector:()=>en,BasePromptSelector:()=>Do,ConditionalPromptSelector:()=>Yu,LengthBasedExampleSelector:()=>Zu,SemanticSimilarityExampleSelector:()=>ec,isChatModel:()=>hb,isLLM:()=>fb});var en=class extends or{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","example_selectors","base"]})}};var Do=class{async getPromptAsync(e,t){return this.getPrompt(e).partial(t?.partialVariables??{})}},Yu=class extends Do{constructor(e,t=[]){super(),Object.defineProperty(this,"defaultPrompt",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"conditionals",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.defaultPrompt=e,this.conditionals=t}getPrompt(e){for(let[t,n]of this.conditionals)if(t(e))return n;return this.defaultPrompt}};function fb(r){return r._modelType()==="base_llm"}function hb(r){return r._modelType()==="base_chat_model"}function ch(r){return r.split(/\n| /).length}var Zu=class r extends en{constructor(e){super(e),Object.defineProperty(this,"examples",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"examplePrompt",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"getTextLength",{enumerable:!0,configurable:!0,writable:!0,value:ch}),Object.defineProperty(this,"maxLength",{enumerable:!0,configurable:!0,writable:!0,value:2048}),Object.defineProperty(this,"exampleTextLengths",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.examplePrompt=e.examplePrompt,this.maxLength=e.maxLength??2048,this.getTextLength=e.getTextLength??ch}async addExample(e){this.examples.push(e);let t=await this.examplePrompt.format(e);this.exampleTextLengths.push(this.getTextLength(t))}async calculateExampleTextLengths(e,t){if(e.length>0)return e;let{examples:n,examplePrompt:s}=t;return(await Promise.all(n.map(o=>s.format(o)))).map(o=>this.getTextLength(o))}async selectExamples(e){let t=Object.values(e).join(" "),n=this.maxLength-this.getTextLength(t),s=0,i=[];for(;n>0&&s<this.examples.length;){let o=n-this.exampleTextLengths[s];if(o<0)break;i.push(this.examples[s]),n=o,s+=1}return i}static async fromExamples(e,t){let n=new r(t);return await Promise.all(e.map(s=>n.addExample(s))),n}};function Qu(r){return Object.keys(r).sort().map(e=>r[e])}var ec=class r extends en{constructor(e){if(super(e),Object.defineProperty(this,"vectorStoreRetriever",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"exampleKeys",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"inputKeys",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.exampleKeys=e.exampleKeys,this.inputKeys=e.inputKeys,e.vectorStore!==void 0)this.vectorStoreRetriever=e.vectorStore.asRetriever({k:e.k??4,filter:e.filter});else if(e.vectorStoreRetriever)this.vectorStoreRetriever=e.vectorStoreRetriever;else throw new Error('You must specify one of "vectorStore" and "vectorStoreRetriever".')}async addExample(e){let t=this.inputKeys??Object.keys(e),n=Qu(t.reduce((s,i)=>({...s,[i]:e[i]}),{})).join(" ");await this.vectorStoreRetriever.addDocuments([new yt({pageContent:n,metadata:e})])}async selectExamples(e){let t=this.inputKeys??Object.keys(e),n=Qu(t.reduce((o,a)=>({...o,[a]:e[a]}),{})).join(" "),i=(await this.vectorStoreRetriever.invoke(n)).map(o=>o.metadata);return this.exampleKeys?i.map(o=>this.exampleKeys.reduce((a,u)=>({...a,[u]:o[u]}),{})):i}static async fromExamples(e,t,n,s={}){let i=s.inputKeys??null,o=e.map(u=>Qu(i?i.reduce((c,l)=>({...c,[l]:u[l]}),{}):u).join(" ")),a=await n.fromTexts(o,e,t,s);return new r({vectorStore:a,k:s.k??4,exampleKeys:s.exampleKeys,inputKeys:s.inputKeys})}};var oc={};ne(oc,{BaseLangChain:()=>Yn,BaseLanguageModel:()=>rn,calculateMaxTokens:()=>gh,getEmbeddingContextSize:()=>kb,getModelContextSize:()=>mh,getModelNameForTiktoken:()=>zo,isOpenAITool:()=>Bo});var ic={};ne(ic,{encodingForModel:()=>Uo,getEncoding:()=>dh});var hh=kg(fh(),1),xb=Object.defineProperty,vb=(r,e,t)=>e in r?xb(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Ab=(r,e,t)=>(vb(r,typeof e!="symbol"?e+"":e,t),t);function Ob(r,e){let t=Array.from({length:r.length},(n,s)=>({start:s,end:s+1}));for(;t.length>1;){let n=null;for(let s=0;s<t.length-1;s++){let i=r.slice(t[s].start,t[s+1].end),o=e.get(i.join(","));o!=null&&(n==null||o<n[0])&&(n=[o,s])}if(n!=null){let s=n[1];t[s]={start:t[s].start,end:t[s+1].end},t.splice(s+1,1)}else break}return t}function Pb(r,e){return r.length===1?[e.get(r.join(","))]:Ob(r,e).map(t=>e.get(r.slice(t.start,t.end).join(","))).filter(t=>t!=null)}function Eb(r){return r.replace(/[\\^$*+?.()|[\]{}]/g,"\\$&")}var nc=class{specialTokens;inverseSpecialTokens;patStr;textEncoder=new TextEncoder;textDecoder=new TextDecoder("utf-8");rankMap=new Map;textMap=new Map;constructor(r,e){this.patStr=r.pat_str;let t=r.bpe_ranks.split(`
7
+ `).filter(Boolean).reduce((n,s)=>{let[i,o,...a]=s.split(" "),u=Number.parseInt(o,10);return a.forEach((c,l)=>n[c]=u+l),n},{});for(let[n,s]of Object.entries(t)){let i=hh.default.toByteArray(n);this.rankMap.set(i.join(","),s),this.textMap.set(s,i)}this.specialTokens={...r.special_tokens,...e},this.inverseSpecialTokens=Object.entries(this.specialTokens).reduce((n,[s,i])=>(n[i]=this.textEncoder.encode(s),n),{})}encode(r,e=[],t="all"){let n=new RegExp(this.patStr,"ug"),s=nc.specialTokenRegex(Object.keys(this.specialTokens)),i=[],o=new Set(e==="all"?Object.keys(this.specialTokens):e),a=new Set(t==="all"?Object.keys(this.specialTokens).filter(c=>!o.has(c)):t);if(a.size>0){let c=nc.specialTokenRegex([...a]),l=r.match(c);if(l!=null)throw new Error(`The text contains a special token that is not allowed: ${l[0]}`)}let u=0;for(;;){let c=null,l=u;for(;s.lastIndex=l,c=s.exec(r),!(c==null||o.has(c[0]));)l=c.index+1;let p=c?.index??r.length;for(let f of r.substring(u,p).matchAll(n)){let g=this.textEncoder.encode(f[0]),b=this.rankMap.get(g.join(","));if(b!=null){i.push(b);continue}i.push(...Pb(g,this.rankMap))}if(c==null)break;let h=this.specialTokens[c[0]];i.push(h),u=c.index+c[0].length}return i}decode(r){let e=[],t=0;for(let i=0;i<r.length;++i){let o=r[i],a=this.textMap.get(o)??this.inverseSpecialTokens[o];a!=null&&(e.push(a),t+=a.length)}let n=new Uint8Array(t),s=0;for(let i of e)n.set(i,s),s+=i.length;return this.textDecoder.decode(n)}},Lo=nc;Ab(Lo,"specialTokenRegex",r=>new RegExp(r.map(e=>Eb(e)).join("|"),"g"));function sc(r){switch(r){case"gpt2":return"gpt2";case"code-cushman-001":case"code-cushman-002":case"code-davinci-001":case"code-davinci-002":case"cushman-codex":case"davinci-codex":case"davinci-002":case"text-davinci-002":case"text-davinci-003":return"p50k_base";case"code-davinci-edit-001":case"text-davinci-edit-001":return"p50k_edit";case"ada":case"babbage":case"babbage-002":case"code-search-ada-code-001":case"code-search-babbage-code-001":case"curie":case"davinci":case"text-ada-001":case"text-babbage-001":case"text-curie-001":case"text-davinci-001":case"text-search-ada-doc-001":case"text-search-babbage-doc-001":case"text-search-curie-doc-001":case"text-search-davinci-doc-001":case"text-similarity-ada-001":case"text-similarity-babbage-001":case"text-similarity-curie-001":case"text-similarity-davinci-001":return"r50k_base";case"gpt-3.5-turbo-instruct-0914":case"gpt-3.5-turbo-instruct":case"gpt-3.5-turbo-16k-0613":case"gpt-3.5-turbo-16k":case"gpt-3.5-turbo-0613":case"gpt-3.5-turbo-0301":case"gpt-3.5-turbo":case"gpt-4-32k-0613":case"gpt-4-32k-0314":case"gpt-4-32k":case"gpt-4-0613":case"gpt-4-0314":case"gpt-4":case"gpt-3.5-turbo-1106":case"gpt-35-turbo":case"gpt-4-1106-preview":case"gpt-4-vision-preview":case"gpt-3.5-turbo-0125":case"gpt-4-turbo":case"gpt-4-turbo-2024-04-09":case"gpt-4-turbo-preview":case"gpt-4-0125-preview":case"text-embedding-ada-002":case"text-embedding-3-small":case"text-embedding-3-large":return"cl100k_base";case"gpt-4o":case"gpt-4o-2024-05-13":case"gpt-4o-2024-08-06":case"gpt-4o-2024-11-20":case"gpt-4o-mini-2024-07-18":case"gpt-4o-mini":case"gpt-4o-search-preview":case"gpt-4o-search-preview-2025-03-11":case"gpt-4o-mini-search-preview":case"gpt-4o-mini-search-preview-2025-03-11":case"gpt-4o-audio-preview":case"gpt-4o-audio-preview-2024-12-17":case"gpt-4o-audio-preview-2024-10-01":case"gpt-4o-mini-audio-preview":case"gpt-4o-mini-audio-preview-2024-12-17":case"o1":case"o1-2024-12-17":case"o1-mini":case"o1-mini-2024-09-12":case"o1-preview":case"o1-preview-2024-09-12":case"o1-pro":case"o1-pro-2025-03-19":case"o3":case"o3-2025-04-16":case"o3-mini":case"o3-mini-2025-01-31":case"o4-mini":case"o4-mini-2025-04-16":case"chatgpt-4o-latest":case"gpt-4o-realtime":case"gpt-4o-realtime-preview-2024-10-01":case"gpt-4o-realtime-preview-2024-12-17":case"gpt-4o-mini-realtime-preview":case"gpt-4o-mini-realtime-preview-2024-12-17":case"gpt-4.1":case"gpt-4.1-2025-04-14":case"gpt-4.1-mini":case"gpt-4.1-mini-2025-04-14":case"gpt-4.1-nano":case"gpt-4.1-nano-2025-04-14":case"gpt-4.5-preview":case"gpt-4.5-preview-2025-02-27":case"gpt-5":case"gpt-5-2025-08-07":case"gpt-5-nano":case"gpt-5-nano-2025-08-07":case"gpt-5-mini":case"gpt-5-mini-2025-08-07":case"gpt-5-chat-latest":return"o200k_base";default:throw new Error("Unknown model")}}var Fo={},Ib=new Vn({});async function dh(r){return r in Fo||(Fo[r]=Ib.fetch(`https://tiktoken.pages.dev/js/${r}.json`).then(e=>e.json()).then(e=>new Lo(e)).catch(e=>{throw delete Fo[r],e})),await Fo[r]}async function Uo(r){return dh(sc(r))}var zo=r=>r.startsWith("gpt-3.5-turbo-16k")?"gpt-3.5-turbo-16k":r.startsWith("gpt-3.5-turbo-")?"gpt-3.5-turbo":r.startsWith("gpt-4-32k")?"gpt-4-32k":r.startsWith("gpt-4-")?"gpt-4":r.startsWith("gpt-4o")?"gpt-4o":r,kb=r=>{switch(r){case"text-embedding-ada-002":return 8191;default:return 2046}},mh=r=>{switch(zo(r)){case"gpt-3.5-turbo-16k":return 16384;case"gpt-3.5-turbo":return 4096;case"gpt-4-32k":return 32768;case"gpt-4":return 8192;case"text-davinci-003":return 4097;case"text-curie-001":return 2048;case"text-babbage-001":return 2048;case"text-ada-001":return 2048;case"code-davinci-002":return 8e3;case"code-cushman-001":return 2048;default:return 4097}};function Bo(r){return typeof r!="object"||!r?!1:!!("type"in r&&r.type==="function"&&"function"in r&&typeof r.function=="object"&&r.function&&"name"in r.function&&"parameters"in r.function)}var gh=async({prompt:r,modelName:e})=>{let t;try{t=(await Uo(zo(e))).encode(r).length}catch{console.warn("Failed to calculate number of tokens, falling back to approximate count"),t=Math.ceil(r.length/4)}return mh(e)-t},Sb=()=>!1,Yn=class extends Z{get lc_attributes(){return{callbacks:void 0,verbose:void 0}}constructor(e){super(e),Object.defineProperty(this,"verbose",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"callbacks",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.verbose=e.verbose??Sb(),this.callbacks=e.callbacks,this.tags=e.tags??[],this.metadata=e.metadata??{}}},rn=class extends Yn{get callKeys(){return["stop","timeout","signal","tags","metadata","callbacks"]}constructor({callbacks:e,callbackManager:t,...n}){let{cache:s,...i}=n;super({callbacks:e??t,...i}),Object.defineProperty(this,"caller",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_encoding",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),typeof s=="object"?this.cache=s:s?this.cache=di.global():this.cache=void 0,this.caller=new Vn(n??{})}async getNumTokens(e){let t;typeof e=="string"?t=e:t=e.map(s=>typeof s=="string"?s:s.type==="text"&&"text"in s?s.text:"").join("");let n=Math.ceil(t.length/4);if(!this._encoding)try{this._encoding=await Uo("modelName"in this?zo(this.modelName):"gpt2")}catch(s){console.warn("Failed to calculate number of tokens, falling back to approximate count",s)}if(this._encoding)try{n=this._encoding.encode(t).length}catch(s){console.warn("Failed to calculate number of tokens, falling back to approximate count",s)}return n}static _convertInputToPromptValue(e){return typeof e=="string"?new Yf(e):Array.isArray(e)?new Zf(e.map(Dt)):e}_identifyingParams(){return{}}_getSerializedCacheKeyParametersForCall({config:e,...t}){let n={...this._identifyingParams(),...t,_type:this._llmType(),_model:this._modelType()};return Object.entries(n).filter(([o,a])=>a!==void 0).map(([o,a])=>`${o}:${JSON.stringify(a)}`).sort().join(",")}serialize(){return{...this._identifyingParams(),_type:this._llmType(),_model:this._modelType()}}static async deserialize(e){throw new Error("Use .toJSON() instead")}};var cc={};ne(cc,{BaseChatModel:()=>zt,SimpleChatModel:()=>uc,createChatMessageChunkEncoderStream:()=>Cb});var Ge=class extends Z{static lc_name(){return"RunnablePassthrough"}constructor(e){super(e),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","runnables"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"func",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),e&&(this.func=e.func)}async invoke(e,t){let n=ut(t);return this.func&&await this.func(e,n),this._callWithConfig(s=>Promise.resolve(s),e,n)}async*transform(e,t){let n=ut(t),s,i=!0;for await(let o of this._transformStreamWithConfig(e,a=>a,n))if(yield o,i)if(s===void 0)s=o;else try{s=ar(s,o)}catch{s=void 0,i=!1}this.func&&s!==void 0&&await this.func(s,n)}static assign(e){return new Eo(new Po({steps:e}))}};function Cb(){let r=new TextEncoder;return new TransformStream({transform(e,t){t.enqueue(r.encode(typeof e.content=="string"?e.content:JSON.stringify(e.content)))}})}function ac(r){let e=[];for(let t of r){let n=t;if(Array.isArray(t.content))for(let s=0;s<t.content.length;s++){let i=t.content[s];(ff(i)||hf(i))&&n===t&&(n=new t.constructor({...n,content:[...t.content.slice(0,s),df(i),...t.content.slice(s+1)]}))}e.push(n)}return e}var zt=class r extends rn{constructor(e){super(e),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","chat_models",this._llmType()]}),Object.defineProperty(this,"disableStreaming",{enumerable:!0,configurable:!0,writable:!0,value:!1})}_separateRunnableConfigFromCallOptionsCompat(e){let[t,n]=super._separateRunnableConfigFromCallOptions(e);return n.signal=t.signal,[t,n]}async invoke(e,t){let n=r._convertInputToPromptValue(e);return(await this.generatePrompt([n],t,t?.callbacks)).generations[0][0].message}async*_streamResponseChunks(e,t,n){throw new Error("Not implemented.")}async*_streamIterator(e,t){if(this._streamResponseChunks===r.prototype._streamResponseChunks||this.disableStreaming)yield this.invoke(e,t);else{let s=r._convertInputToPromptValue(e).toChatMessages(),[i,o]=this._separateRunnableConfigFromCallOptionsCompat(t),a={...i.metadata,...this.getLsParams(o)},u=await at.configure(i.callbacks,this.callbacks,i.tags,this.tags,a,this.metadata,{verbose:this.verbose}),c={options:o,invocation_params:this?.invocationParams(o),batch_size:1},l=await u?.handleChatModelStart(this.toJSON(),[ac(s)],i.runId,void 0,c,void 0,void 0,i.runName),p,h;try{for await(let f of this._streamResponseChunks(s,o,l?.[0])){if(f.message.id==null){let g=l?.at(0)?.runId;g!=null&&f.message._updateId(`run-${g}`)}f.message.response_metadata={...f.generationInfo,...f.message.response_metadata},yield f.message,p?p=p.concat(f):p=f,Ru(f.message)&&f.message.usage_metadata!==void 0&&(h={tokenUsage:{promptTokens:f.message.usage_metadata.input_tokens,completionTokens:f.message.usage_metadata.output_tokens,totalTokens:f.message.usage_metadata.total_tokens}})}}catch(f){throw await Promise.all((l??[]).map(g=>g?.handleLLMError(f))),f}await Promise.all((l??[]).map(f=>f?.handleLLMEnd({generations:[[p]],llmOutput:h})))}}getLsParams(e){let t=this.getName().startsWith("Chat")?this.getName().replace("Chat",""):this.getName();return{ls_model_type:"chat",ls_stop:e.stop,ls_provider:t}}async _generateUncached(e,t,n,s){let i=e.map(p=>p.map(Dt)),o;if(s!==void 0&&s.length===i.length)o=s;else{let p={...n.metadata,...this.getLsParams(t)},h=await at.configure(n.callbacks,this.callbacks,n.tags,this.tags,p,this.metadata,{verbose:this.verbose}),f={options:t,invocation_params:this?.invocationParams(t),batch_size:1};o=await h?.handleChatModelStart(this.toJSON(),i.map(ac),n.runId,void 0,f,void 0,void 0,n.runName)}let a=[],u=[];if(!!o?.[0].handlers.find(Ao)&&!this.disableStreaming&&i.length===1&&this._streamResponseChunks!==r.prototype._streamResponseChunks)try{let p=await this._streamResponseChunks(i[0],t,o?.[0]),h,f;for await(let g of p){if(g.message.id==null){let b=o?.at(0)?.runId;b!=null&&g.message._updateId(`run-${b}`)}h===void 0?h=g:h=ar(h,g),Ru(g.message)&&g.message.usage_metadata!==void 0&&(f={tokenUsage:{promptTokens:g.message.usage_metadata.input_tokens,completionTokens:g.message.usage_metadata.output_tokens,totalTokens:g.message.usage_metadata.total_tokens}})}if(h===void 0)throw new Error("Received empty response from chat model call.");a.push([h]),await o?.[0].handleLLMEnd({generations:a,llmOutput:f})}catch(p){throw await o?.[0].handleLLMError(p),p}else{let p=await Promise.allSettled(i.map((h,f)=>this._generate(h,{...t,promptIndex:f},o?.[f])));await Promise.all(p.map(async(h,f)=>{if(h.status==="fulfilled"){let g=h.value;for(let b of g.generations){if(b.message.id==null){let _=o?.at(0)?.runId;_!=null&&b.message._updateId(`run-${_}`)}b.message.response_metadata={...b.generationInfo,...b.message.response_metadata}}return g.generations.length===1&&(g.generations[0].message.response_metadata={...g.llmOutput,...g.generations[0].message.response_metadata}),a[f]=g.generations,u[f]=g.llmOutput,o?.[f]?.handleLLMEnd({generations:[g.generations],llmOutput:g.llmOutput})}else return await o?.[f]?.handleLLMError(h.reason),Promise.reject(h.reason)}))}let l={generations:a,llmOutput:u.length?this._combineLLMOutput?.(...u):void 0};return Object.defineProperty(l,Hn,{value:o?{runIds:o?.map(p=>p.runId)}:void 0,configurable:!0}),l}async _generateCached({messages:e,cache:t,llmStringKey:n,parsedOptions:s,handledOptions:i}){let o=e.map(_=>_.map(Dt)),a={...i.metadata,...this.getLsParams(s)},u=await at.configure(i.callbacks,this.callbacks,i.tags,this.tags,a,this.metadata,{verbose:this.verbose}),c={options:s,invocation_params:this?.invocationParams(s),batch_size:1},l=await u?.handleChatModelStart(this.toJSON(),o.map(ac),i.runId,void 0,c,void 0,void 0,i.runName),p=[],f=(await Promise.allSettled(o.map(async(_,P)=>{let v=r._convertInputToPromptValue(_).toString(),S=await t.lookup(v,n);return S==null&&p.push(P),S}))).map((_,P)=>({result:_,runManager:l?.[P]})).filter(({result:_})=>_.status==="fulfilled"&&_.value!=null||_.status==="rejected"),g=[];await Promise.all(f.map(async({result:_,runManager:P},v)=>{if(_.status==="fulfilled"){let S=_.value;return g[v]=S.map(C=>("message"in C&&ve(C.message)&&jt(C.message)&&(C.message.usage_metadata={input_tokens:0,output_tokens:0,total_tokens:0}),C.generationInfo={...C.generationInfo,tokenUsage:{}},C)),S.length&&await P?.handleLLMNewToken(S[0].text),P?.handleLLMEnd({generations:[S]},void 0,void 0,void 0,{cached:!0})}else return await P?.handleLLMError(_.reason,void 0,void 0,void 0,{cached:!0}),Promise.reject(_.reason)}));let b={generations:g,missingPromptIndices:p,startedRunManagers:l};return Object.defineProperty(b,Hn,{value:l?{runIds:l?.map(_=>_.runId)}:void 0,configurable:!0}),b}async generate(e,t,n){let s;Array.isArray(t)?s={stop:t}:s=t;let i=e.map(g=>g.map(Dt)),[o,a]=this._separateRunnableConfigFromCallOptionsCompat(s);if(o.callbacks=o.callbacks??n,!this.cache)return this._generateUncached(i,a,o);let{cache:u}=this,c=this._getSerializedCacheKeyParametersForCall(a),{generations:l,missingPromptIndices:p,startedRunManagers:h}=await this._generateCached({messages:i,cache:u,llmStringKey:c,parsedOptions:a,handledOptions:o}),f={};if(p.length>0){let g=await this._generateUncached(p.map(b=>i[b]),a,o,h!==void 0?p.map(b=>h?.[b]):void 0);await Promise.all(g.generations.map(async(b,_)=>{let P=p[_];l[P]=b;let v=r._convertInputToPromptValue(i[P]).toString();return u.update(v,c,b)})),f=g.llmOutput??{}}return{generations:l,llmOutput:f}}invocationParams(e){return{}}_modelType(){return"base_chat_model"}serialize(){return{...this.invocationParams(),_type:this._llmType(),_model:this._modelType()}}async generatePrompt(e,t,n){let s=e.map(i=>i.toChatMessages());return this.generate(s,t,n)}async call(e,t,n){return(await this.generate([e.map(Dt)],t,n)).generations[0][0].message}async callPrompt(e,t,n){let s=e.toChatMessages();return this.call(s,t,n)}async predictMessages(e,t,n){return this.call(e,t,n)}async predict(e,t,n){let s=new ot(e),i=await this.call([s],t,n);if(typeof i.content!="string")throw new Error("Cannot use predict when output is not a string.");return i.content}withStructuredOutput(e,t){if(typeof this.bindTools!="function")throw new Error('Chat model must implement ".bindTools()" to use withStructuredOutput.');if(t?.strict)throw new Error('"strict" mode is not supported for this model by default.');let n=e,s=t?.name,i=$t(n)??"A function available to call.",o=t?.method,a=t?.includeRaw;if(o==="jsonMode")throw new Error('Base withStructuredOutput implementation only supports "functionCalling" as a method.');let u=s??"extract",c;Ze(n)?c=[{type:"function",function:{name:u,description:i,parameters:Ae(n)}}]:("name"in n&&(u=n.name),c=[{type:"function",function:{name:u,description:i,parameters:n}}]);let l=this.bindTools(c),p=Ft.from(b=>{if(!b.tool_calls||b.tool_calls.length===0)throw new Error("No tool calls found in the response.");let _=b.tool_calls.find(P=>P.name===u);if(!_)throw new Error(`No tool call found with name ${u}.`);return _.args});if(!a)return l.pipe(p).withConfig({runName:"StructuredOutput"});let h=Ge.assign({parsed:(b,_)=>p.invoke(b.raw,_)}),f=Ge.assign({parsed:()=>null}),g=h.withFallbacks({fallbacks:[f]});return Qe.from([{raw:l},g]).withConfig({runName:"StructuredOutputRunnable"})}},uc=class extends zt{async _generate(e,t,n){let s=await this._call(e,t,n),i=new ce(s);if(typeof i.content!="string")throw new Error("Cannot generate with a simple chat model when output is not a string.");return{generations:[{text:i.content,message:i}]}}};var lc={};ne(lc,{BaseLLM:()=>gi,LLM:()=>Zn});var gi=class r extends rn{constructor({concurrency:e,...t}){super(e?{maxConcurrency:e,...t}:t),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","llms",this._llmType()]})}async invoke(e,t){let n=r._convertInputToPromptValue(e);return(await this.generatePrompt([n],t,t?.callbacks)).generations[0][0].text}async*_streamResponseChunks(e,t,n){throw new Error("Not implemented.")}_separateRunnableConfigFromCallOptionsCompat(e){let[t,n]=super._separateRunnableConfigFromCallOptions(e);return n.signal=t.signal,[t,n]}async*_streamIterator(e,t){if(this._streamResponseChunks===r.prototype._streamResponseChunks)yield this.invoke(e,t);else{let n=r._convertInputToPromptValue(e),[s,i]=this._separateRunnableConfigFromCallOptionsCompat(t),o=await at.configure(s.callbacks,this.callbacks,s.tags,this.tags,s.metadata,this.metadata,{verbose:this.verbose}),a={options:i,invocation_params:this?.invocationParams(i),batch_size:1},u=await o?.handleLLMStart(this.toJSON(),[n.toString()],s.runId,void 0,a,void 0,void 0,s.runName),c=new oi({text:""});try{for await(let l of this._streamResponseChunks(n.toString(),i,u?.[0]))c?c=c.concat(l):c=l,typeof l.text=="string"&&(yield l.text)}catch(l){throw await Promise.all((u??[]).map(p=>p?.handleLLMError(l))),l}await Promise.all((u??[]).map(l=>l?.handleLLMEnd({generations:[[c]]})))}}async generatePrompt(e,t,n){let s=e.map(i=>i.toString());return this.generate(s,t,n)}invocationParams(e){return{}}_flattenLLMResult(e){let t=[];for(let n=0;n<e.generations.length;n+=1){let s=e.generations[n];if(n===0)t.push({generations:[s],llmOutput:e.llmOutput});else{let i=e.llmOutput?{...e.llmOutput,tokenUsage:{}}:void 0;t.push({generations:[s],llmOutput:i})}}return t}async _generateUncached(e,t,n,s){let i;if(s!==void 0&&s.length===e.length)i=s;else{let c=await at.configure(n.callbacks,this.callbacks,n.tags,this.tags,n.metadata,this.metadata,{verbose:this.verbose}),l={options:t,invocation_params:this?.invocationParams(t),batch_size:e.length};i=await c?.handleLLMStart(this.toJSON(),e,n.runId,void 0,l,void 0,void 0,n?.runName)}let o=!!i?.[0].handlers.find(Ao),a;if(o&&e.length===1&&this._streamResponseChunks!==r.prototype._streamResponseChunks)try{let c=await this._streamResponseChunks(e[0],t,i?.[0]),l;for await(let p of c)l===void 0?l=p:l=ar(l,p);if(l===void 0)throw new Error("Received empty response from chat model call.");a={generations:[[l]],llmOutput:{}},await i?.[0].handleLLMEnd(a)}catch(c){throw await i?.[0].handleLLMError(c),c}else{try{a=await this._generate(e,t,i?.[0])}catch(l){throw await Promise.all((i??[]).map(p=>p?.handleLLMError(l))),l}let c=this._flattenLLMResult(a);await Promise.all((i??[]).map((l,p)=>l?.handleLLMEnd(c[p])))}let u=i?.map(c=>c.runId)||void 0;return Object.defineProperty(a,Hn,{value:u?{runIds:u}:void 0,configurable:!0}),a}async _generateCached({prompts:e,cache:t,llmStringKey:n,parsedOptions:s,handledOptions:i,runId:o}){let a=await at.configure(i.callbacks,this.callbacks,i.tags,this.tags,i.metadata,this.metadata,{verbose:this.verbose}),u={options:s,invocation_params:this?.invocationParams(s),batch_size:e.length},c=await a?.handleLLMStart(this.toJSON(),e,o,void 0,u,void 0,void 0,i?.runName),l=[],h=(await Promise.allSettled(e.map(async(b,_)=>{let P=await t.lookup(b,n);return P==null&&l.push(_),P}))).map((b,_)=>({result:b,runManager:c?.[_]})).filter(({result:b})=>b.status==="fulfilled"&&b.value!=null||b.status==="rejected"),f=[];await Promise.all(h.map(async({result:b,runManager:_},P)=>{if(b.status==="fulfilled"){let v=b.value;return f[P]=v.map(S=>(S.generationInfo={...S.generationInfo,tokenUsage:{}},S)),v.length&&await _?.handleLLMNewToken(v[0].text),_?.handleLLMEnd({generations:[v]},void 0,void 0,void 0,{cached:!0})}else return await _?.handleLLMError(b.reason,void 0,void 0,void 0,{cached:!0}),Promise.reject(b.reason)}));let g={generations:f,missingPromptIndices:l,startedRunManagers:c};return Object.defineProperty(g,Hn,{value:c?{runIds:c?.map(b=>b.runId)}:void 0,configurable:!0}),g}async generate(e,t,n){if(!Array.isArray(e))throw new Error("Argument 'prompts' is expected to be a string[]");let s;Array.isArray(t)?s={stop:t}:s=t;let[i,o]=this._separateRunnableConfigFromCallOptionsCompat(s);if(i.callbacks=i.callbacks??n,!this.cache)return this._generateUncached(e,o,i);let{cache:a}=this,u=this._getSerializedCacheKeyParametersForCall(o),{generations:c,missingPromptIndices:l,startedRunManagers:p}=await this._generateCached({prompts:e,cache:a,llmStringKey:u,parsedOptions:o,handledOptions:i,runId:i.runId}),h={};if(l.length>0){let f=await this._generateUncached(l.map(g=>e[g]),o,i,p!==void 0?l.map(g=>p?.[g]):void 0);await Promise.all(f.generations.map(async(g,b)=>{let _=l[b];return c[_]=g,a.update(e[_],u,g)})),h=f.llmOutput??{}}return{generations:c,llmOutput:h}}async call(e,t,n){let{generations:s}=await this.generate([e],t,n);return s[0][0].text}async predict(e,t,n){return this.call(e,t,n)}async predictMessages(e,t,n){let s=vo(e),i=await this.call(s,t,n);return new ce(i)}_identifyingParams(){return{}}serialize(){return{...this._identifyingParams(),_type:this._llmType(),_model:this._modelType()}}_modelType(){return"base_llm"}},Zn=class extends gi{async _generate(e,t,n){return{generations:await Promise.all(e.map((i,o)=>this._call(i,{...t,promptIndex:o},n).then(a=>[{text:a}])))}}};var fc={};ne(fc,{BaseMemory:()=>pc,getInputValue:()=>Tb,getOutputValue:()=>Rb,getPromptInputKey:()=>Nb});var pc=class{},bh=(r,e)=>{if(e!==void 0)return r[e];let t=Object.keys(r);if(t.length===1)return r[t[0]]},Tb=(r,e)=>{let t=bh(r,e);if(!t){let n=Object.keys(r);throw new Error(`input values have ${n.length} keys, you must specify an input key or pass only 1 key as input`)}return t},Rb=(r,e)=>{let t=bh(r,e);if(!t&&t!==""){let n=Object.keys(r);throw new Error(`output values have ${n.length} keys, you must specify an output key or pass only 1 key as output`)}return t};function Nb(r,e){let t=Object.keys(r).filter(n=>!e.includes(n)&&n!=="stop");if(t.length!==1)throw new Error(`One input key expected, but got ${t.length}`);return t[0]}var Pc={};ne(Pc,{AsymmetricStructuredOutputParser:()=>wc,BaseCumulativeTransformOutputParser:()=>cr,BaseLLMOutputParser:()=>Vo,BaseOutputParser:()=>Bt,BaseTransformOutputParser:()=>Kt,BytesOutputParser:()=>dc,CommaSeparatedListOutputParser:()=>mc,CustomListOutputParser:()=>gc,JsonMarkdownStructuredOutputParser:()=>Go,JsonOutputParser:()=>Qn,ListOutputParser:()=>nn,MarkdownListOutputParser:()=>yc,NumberedListOutputParser:()=>bc,OutputParserException:()=>qe,StringOutputParser:()=>_c,StructuredOutputParser:()=>sn,XMLOutputParser:()=>Ac,XML_FORMAT_INSTRUCTIONS:()=>vc,parseJsonMarkdown:()=>_o,parsePartialJson:()=>wo,parseXMLMarkdown:()=>Oc});var hc={};ne(hc,{RouterRunnable:()=>Ko,Runnable:()=>Z,RunnableAssign:()=>Eo,RunnableBinding:()=>Ar,RunnableBranch:()=>Wo,RunnableEach:()=>Wf,RunnableLambda:()=>Ft,RunnableMap:()=>Po,RunnableParallel:()=>Vf,RunnablePassthrough:()=>Ge,RunnablePick:()=>qf,RunnableRetry:()=>Hf,RunnableSequence:()=>Qe,RunnableToolLike:()=>Jf,RunnableWithFallbacks:()=>Gf,RunnableWithMessageHistory:()=>Ho,_coerceToRunnable:()=>Ne,ensureConfig:()=>ut,getCallbackManagerForConfig:()=>vr,mergeConfigs:()=>ze,patchConfig:()=>he,pickRunnableConfigKeys:()=>Wn});var Ko=class extends Z{static lc_name(){return"RouterRunnable"}constructor(e){super(e),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","runnables"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"runnables",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.runnables=e.runnables}async invoke(e,t){let{key:n,input:s}=e,i=this.runnables[n];if(i===void 0)throw new Error(`No runnable associated with key "${n}".`);return i.invoke(s,ut(t))}async batch(e,t,n){let s=e.map(h=>h.key),i=e.map(h=>h.input);if(s.find(h=>this.runnables[h]===void 0)!==void 0)throw new Error("One or more keys do not have a corresponding runnable.");let a=s.map(h=>this.runnables[h]),u=this._getOptionsList(t??{},e.length),c=u[0]?.maxConcurrency??n?.maxConcurrency,l=c&&c>0?c:e.length,p=[];for(let h=0;h<i.length;h+=l){let f=i.slice(h,h+l).map((b,_)=>a[_].invoke(b,u[_])),g=await Promise.all(f);p.push(g)}return p.flat()}async stream(e,t){let{key:n,input:s}=e,i=this.runnables[n];if(i===void 0)throw new Error(`No runnable associated with key "${n}".`);return i.stream(s,t)}};var Wo=class extends Z{static lc_name(){return"RunnableBranch"}constructor(e){super(e),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","runnables"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"default",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"branches",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.branches=e.branches,this.default=e.default}static from(e){if(e.length<1)throw new Error("RunnableBranch requires at least one branch");let n=e.slice(0,-1).map(([i,o])=>[Ne(i),Ne(o)]),s=Ne(e[e.length-1]);return new this({branches:n,default:s})}async _invoke(e,t,n){let s;for(let i=0;i<this.branches.length;i+=1){let[o,a]=this.branches[i];if(await o.invoke(e,he(t,{callbacks:n?.getChild(`condition:${i+1}`)}))){s=await a.invoke(e,he(t,{callbacks:n?.getChild(`branch:${i+1}`)}));break}}return s||(s=await this.default.invoke(e,he(t,{callbacks:n?.getChild("branch:default")}))),s}async invoke(e,t={}){return this._callWithConfig(this._invoke,e,t)}async*_streamIterator(e,t){let s=await(await vr(t))?.handleChainStart(this.toJSON(),Kf(e,"input"),t?.runId,void 0,void 0,void 0,t?.runName),i,o=!0,a;try{for(let u=0;u<this.branches.length;u+=1){let[c,l]=this.branches[u];if(await c.invoke(e,he(t,{callbacks:s?.getChild(`condition:${u+1}`)}))){a=await l.stream(e,he(t,{callbacks:s?.getChild(`branch:${u+1}`)}));for await(let h of a)if(yield h,o)if(i===void 0)i=h;else try{i=ar(i,h)}catch{i=void 0,o=!1}break}}if(a===void 0){a=await this.default.stream(e,he(t,{callbacks:s?.getChild("branch:default")}));for await(let u of a)if(yield u,o)if(i===void 0)i=u;else try{i=ar(i,u)}catch{i=void 0,o=!1}}}catch(u){throw await s?.handleChainError(u),u}await s?.handleChainEnd(i??{})}};var Ho=class extends Ar{constructor(e){let t=Ft.from((o,a)=>this._enterHistory(o,a??{})).withConfig({runName:"loadHistory"}),n=e.historyMessagesKey??e.inputMessagesKey;n&&(t=Ge.assign({[n]:t}).withConfig({runName:"insertHistory"}));let s=t.pipe(e.runnable.withListeners({onEnd:(o,a)=>this._exitHistory(o,a??{})})).withConfig({runName:"RunnableWithMessageHistory"}),i=e.config??{};super({...e,config:i,bound:s}),Object.defineProperty(this,"runnable",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"inputMessagesKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"outputMessagesKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"historyMessagesKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"getMessageHistory",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.runnable=e.runnable,this.getMessageHistory=e.getMessageHistory,this.inputMessagesKey=e.inputMessagesKey,this.outputMessagesKey=e.outputMessagesKey,this.historyMessagesKey=e.historyMessagesKey}_getInputMessages(e){let t;if(typeof e=="object"&&!Array.isArray(e)&&!ve(e)){let n;this.inputMessagesKey?n=this.inputMessagesKey:Object.keys(e).length===1?n=Object.keys(e)[0]:n="input",Array.isArray(e[n])&&Array.isArray(e[n][0])?t=e[n][0]:t=e[n]}else t=e;if(typeof t=="string")return[new ot(t)];if(Array.isArray(t))return t;if(ve(t))return[t];throw new Error(`Expected a string, BaseMessage, or array of BaseMessages.
8
+ Got ${JSON.stringify(t,null,2)}`)}_getOutputMessages(e){let t;if(!Array.isArray(e)&&!ve(e)&&typeof e!="string"){let n;this.outputMessagesKey!==void 0?n=this.outputMessagesKey:Object.keys(e).length===1?n=Object.keys(e)[0]:n="output",e.generations!==void 0?t=e.generations[0][0].message:t=e[n]}else t=e;if(typeof t=="string")return[new ce(t)];if(Array.isArray(t))return t;if(ve(t))return[t];throw new Error(`Expected a string, BaseMessage, or array of BaseMessages. Received: ${JSON.stringify(t,null,2)}`)}async _enterHistory(e,t){let s=await(t?.configurable?.messageHistory).getMessages();return this.historyMessagesKey===void 0?s.concat(this._getInputMessages(e)):s}async _exitHistory(e,t){let n=t.configurable?.messageHistory,s;Array.isArray(e.inputs)&&Array.isArray(e.inputs[0])?s=e.inputs[0]:s=e.inputs;let i=this._getInputMessages(s);if(this.historyMessagesKey===void 0){let u=await n.getMessages();i=i.slice(u.length)}let o=e.outputs;if(!o)throw new Error(`Output values from 'Run' undefined. Run: ${JSON.stringify(e,null,2)}`);let a=this._getOutputMessages(o);await n.addMessages([...i,...a])}async _mergeConfig(...e){let t=await super._mergeConfig(...e);if(!t.configurable||!t.configurable.sessionId){let s={[this.inputMessagesKey??"input"]:"foo"},i={configurable:{sessionId:"123"}};throw new Error(`sessionId is required. Pass it in as part of the config argument to .invoke() or .stream()
9
+ eg. chain.invoke(${JSON.stringify(s)}, ${JSON.stringify(i)})`)}let{sessionId:n}=t.configurable;return t.configurable.messageHistory=await this.getMessageHistory(n),t}};var Vo=class extends Z{parseResultWithPrompt(e,t,n){return this.parseResult(e,n)}_baseMessageToString(e){return typeof e.content=="string"?e.content:this._baseMessageContentToString(e.content)}_baseMessageContentToString(e){return JSON.stringify(e)}async invoke(e,t){return typeof e=="string"?this._callWithConfig(async(n,s)=>this.parseResult([{text:n}],s?.callbacks),e,{...t,runType:"parser"}):this._callWithConfig(async(n,s)=>this.parseResult([{message:n,text:this._baseMessageToString(n)}],s?.callbacks),e,{...t,runType:"parser"})}},Bt=class extends Vo{parseResult(e,t){return this.parse(e[0].text,t)}async parseWithPrompt(e,t,n){return this.parse(e,n)}_type(){throw new Error("_type not implemented")}},qe=class extends Error{constructor(e,t,n,s=!1){if(super(e),Object.defineProperty(this,"llmOutput",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"observation",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sendToLLM",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.llmOutput=t,this.observation=n,this.sendToLLM=s,s&&(n===void 0||t===void 0))throw new Error("Arguments 'observation' & 'llmOutput' are required if 'sendToLlm' is true");lf(this,"OUTPUT_PARSING_FAILURE")}};var Kt=class extends Bt{async*_transform(e){for await(let t of e)typeof t=="string"?yield this.parseResult([{text:t}]):yield this.parseResult([{message:t,text:this._baseMessageToString(t)}])}async*transform(e,t){yield*this._transformStreamWithConfig(e,this._transform.bind(this),{...t,runType:"parser"})}},cr=class extends Kt{constructor(e){super(e),Object.defineProperty(this,"diff",{enumerable:!0,configurable:!0,writable:!0,value:!1}),this.diff=e?.diff??this.diff}async*_transform(e){let t,n;for await(let s of e){if(typeof s!="string"&&typeof s.content!="string")throw new Error("Cannot handle non-string output.");let i;if(ii(s)){if(typeof s.content!="string")throw new Error("Cannot handle non-string message output.");i=new ht({message:s,text:s.content})}else if(ve(s)){if(typeof s.content!="string")throw new Error("Cannot handle non-string message output.");i=new ht({message:xf(s),text:s.content})}else i=new oi({text:s});n===void 0?n=i:n=n.concat(i);let o=await this.parsePartialResult([n]);o!=null&&!Ff(o,t)&&(this.diff?yield this._diff(t,o):yield o,t=o)}}getFormatInstructions(){return""}};var dc=class extends Kt{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers","bytes"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"textEncoder",{enumerable:!0,configurable:!0,writable:!0,value:new TextEncoder})}static lc_name(){return"BytesOutputParser"}parse(e){return Promise.resolve(this.textEncoder.encode(e))}getFormatInstructions(){return""}};var nn=class extends Kt{constructor(){super(...arguments),Object.defineProperty(this,"re",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}async*_transform(e){let t="";for await(let n of e)if(typeof n=="string"?t+=n:t+=n.content,this.re){let s=[...t.matchAll(this.re)];if(s.length>1){let i=0;for(let o of s.slice(0,-1))yield[o[1]],i+=(o.index??0)+o[0].length;t=t.slice(i)}}else{let s=await this.parse(t);if(s.length>1){for(let i of s.slice(0,-1))yield[i];t=s[s.length-1]}}for(let n of await this.parse(t))yield[n]}},mc=class extends nn{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers","list"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0})}static lc_name(){return"CommaSeparatedListOutputParser"}async parse(e){try{return e.trim().split(",").map(t=>t.trim())}catch{throw new qe(`Could not parse output: ${e}`,e)}}getFormatInstructions(){return"Your response should be a list of comma separated values, eg: `foo, bar, baz`"}},gc=class extends nn{constructor({length:e,separator:t}){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers","list"]}),Object.defineProperty(this,"length",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"separator",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.length=e,this.separator=t||","}async parse(e){try{let t=e.trim().split(this.separator).map(n=>n.trim());if(this.length!==void 0&&t.length!==this.length)throw new qe(`Incorrect number of items. Expected ${this.length}, got ${t.length}.`);return t}catch(t){throw Object.getPrototypeOf(t)===qe.prototype?t:new qe(`Could not parse output: ${e}`)}}getFormatInstructions(){return`Your response should be a list of ${this.length===void 0?"":`${this.length} `}items separated by "${this.separator}" (eg: \`foo${this.separator} bar${this.separator} baz\`)`}},bc=class extends nn{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers","list"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"re",{enumerable:!0,configurable:!0,writable:!0,value:/\d+\.\s([^\n]+)/g})}static lc_name(){return"NumberedListOutputParser"}getFormatInstructions(){return`Your response should be a numbered list with each item on a new line. For example:
12
10
 
13
11
  1. foo
14
12
 
15
13
  2. bar
16
14
 
17
- 3. baz`}async parse(e){return[...e.matchAll(this.re)??[]].map(t=>t[1])}},dc=class extends tn{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers","list"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"re",{enumerable:!0,configurable:!0,writable:!0,value:/^\s*[-*]\s([^\n]+)$/gm})}static lc_name(){return"NumberedListOutputParser"}getFormatInstructions(){return`Your response should be a numbered list with each item on a new line. For example:
15
+ 3. baz`}async parse(e){return[...e.matchAll(this.re)??[]].map(t=>t[1])}},yc=class extends nn{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers","list"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"re",{enumerable:!0,configurable:!0,writable:!0,value:/^\s*[-*]\s([^\n]+)$/gm})}static lc_name(){return"NumberedListOutputParser"}getFormatInstructions(){return`Your response should be a numbered list with each item on a new line. For example:
18
16
 
19
17
  1. foo
20
18
 
21
19
  2. bar
22
20
 
23
- 3. baz`}async parse(e){return[...e.matchAll(this.re)??[]].map(t=>t[1])}};var mc=class extends Kt{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers","string"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0})}static lc_name(){return"StrOutputParser"}parse(e){return Promise.resolve(e)}getFormatInstructions(){return""}_textContentToString(e){return e.text}_imageUrlContentToString(e){throw new Error('Cannot coerce a multimodal "image_url" message part into a string.')}_messageContentComplexToString(e){switch(e.type){case"text":case"text_delta":if("text"in e)return this._textContentToString(e);break;case"image_url":if("image_url"in e)return this._imageUrlContentToString(e);break;default:throw new Error(`Cannot coerce "${e.type}" message part into a string.`)}throw new Error(`Invalid content type: ${e.type}`)}_baseMessageContentToString(e){return e.reduce((t,n)=>t+this._messageContentComplexToString(n),"")}};var rn=class extends Bt{static lc_name(){return"StructuredOutputParser"}toJSON(){return this.toJSONNotImplemented()}constructor(e){super(e),Object.defineProperty(this,"schema",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","output_parsers","structured"]})}static fromZodSchema(e){return new this(e)}static fromNamesAndDescriptions(e){let t=oe.object(Object.fromEntries(Object.entries(e).map(([n,s])=>[n,oe.string().describe(s)])));return new this(t)}getFormatInstructions(){return`You must format your output as a JSON value that adheres to a given "JSON Schema" instance.
21
+ 3. baz`}async parse(e){return[...e.matchAll(this.re)??[]].map(t=>t[1])}};var _c=class extends Kt{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers","string"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0})}static lc_name(){return"StrOutputParser"}parse(e){return Promise.resolve(e)}getFormatInstructions(){return""}_textContentToString(e){return e.text}_imageUrlContentToString(e){throw new Error('Cannot coerce a multimodal "image_url" message part into a string.')}_messageContentComplexToString(e){switch(e.type){case"text":case"text_delta":if("text"in e)return this._textContentToString(e);break;case"image_url":if("image_url"in e)return this._imageUrlContentToString(e);break;default:throw new Error(`Cannot coerce "${e.type}" message part into a string.`)}throw new Error(`Invalid content type: ${e.type}`)}_baseMessageContentToString(e){return e.reduce((t,n)=>t+this._messageContentComplexToString(n),"")}};var sn=class extends Bt{static lc_name(){return"StructuredOutputParser"}toJSON(){return this.toJSONNotImplemented()}constructor(e){super(e),Object.defineProperty(this,"schema",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","output_parsers","structured"]})}static fromZodSchema(e){return new this(e)}static fromNamesAndDescriptions(e){let t=ae.object(Object.fromEntries(Object.entries(e).map(([n,s])=>[n,ae.string().describe(s)])));return new this(t)}getFormatInstructions(){return`You must format your output as a JSON value that adheres to a given "JSON Schema" instance.
24
22
 
25
23
  "JSON Schema" is a declarative language that allows you to annotate and validate JSON documents.
26
24
 
@@ -34,7 +32,7 @@ Here is the JSON Schema instance your output must adhere to. Include the enclosi
34
32
  \`\`\`json
35
33
  ${JSON.stringify(Ae(this.schema))}
36
34
  \`\`\`
37
- `}async parse(e){try{let t=e.trim(),s=(t.match(/^```(?:json)?\s*([\s\S]*?)```/)?.[1]||t.match(/```json\s*([\s\S]*?)```/)?.[1]||t).replace(/"([^"\\]*(\\.[^"\\]*)*)"/g,(i,o)=>`"${o.replace(/\n/g,"\\n")}"`).replace(/\n/g,"");return await ui(this.schema,JSON.parse(s))}catch(t){throw new qe(`Failed to parse. Text: "${e}". Error: ${t}`,e)}}},Vo=class extends rn{static lc_name(){return"JsonMarkdownStructuredOutputParser"}getFormatInstructions(e){let t=e?.interpolationDepth??1;if(t<1)throw new Error("f string interpolation depth must be at least 1");return`Return a markdown code snippet with a JSON object formatted to look like:
35
+ `}async parse(e){try{let t=e.trim(),s=(t.match(/^```(?:json)?\s*([\s\S]*?)```/)?.[1]||t.match(/```json\s*([\s\S]*?)```/)?.[1]||t).replace(/"([^"\\]*(\\.[^"\\]*)*)"/g,(i,o)=>`"${o.replace(/\n/g,"\\n")}"`).replace(/\n/g,"");return await ui(this.schema,JSON.parse(s))}catch(t){throw new qe(`Failed to parse. Text: "${e}". Error: ${t}`,e)}}},Go=class extends sn{static lc_name(){return"JsonMarkdownStructuredOutputParser"}getFormatInstructions(e){let t=e?.interpolationDepth??1;if(t<1)throw new Error("f string interpolation depth must be at least 1");return`Return a markdown code snippet with a JSON object formatted to look like:
38
36
  \`\`\`json
39
37
  ${this._schemaToInstruction(Ae(this.schema)).replaceAll("{","{".repeat(t)).replaceAll("}","}".repeat(t))}
40
38
  \`\`\``}_schemaToInstruction(e,t=2){let n=e;if("type"in n){let s=!1,i;if(Array.isArray(n.type)){let u=n.type.findIndex(c=>c==="null");u!==-1&&(s=!0,n.type.splice(u,1)),i=n.type.join(" | ")}else i=n.type;if(n.type==="object"&&n.properties){let u=n.description?` // ${n.description}`:"";return`{
@@ -43,15 +41,15 @@ ${Object.entries(n.properties).map(([l,p])=>{let h=n.required?.includes(l)?"":"
43
41
  ${" ".repeat(t-2)}}${u}`}if(n.type==="array"&&n.items){let u=n.description?` // ${n.description}`:"";return`array[
44
42
  ${" ".repeat(t)}${this._schemaToInstruction(n.items,t+2)}
45
43
  ${" ".repeat(t-2)}] ${u}`}let o=s?" (nullable)":"",a=n.description?` // ${n.description}`:"";return`${i}${a}${o}`}if("anyOf"in n)return n.anyOf.map(s=>this._schemaToInstruction(s,t)).join(`
46
- ${" ".repeat(t-2)}`);throw new Error("unsupported schema type")}static fromZodSchema(e){return new this(e)}static fromNamesAndDescriptions(e){let t=oe.object(Object.fromEntries(Object.entries(e).map(([n,s])=>[n,oe.string().describe(s)])));return new this(t)}},gc=class extends Bt{constructor({inputSchema:e}){super(...arguments),Object.defineProperty(this,"structuredInputParser",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.structuredInputParser=new Vo(e)}async parse(e){let t;try{t=await this.structuredInputParser.parse(e)}catch(n){throw new qe(`Failed to parse. Text: "${e}". Error: ${n}`,e)}return this.outputProcessor(t)}getFormatInstructions(){return this.structuredInputParser.getFormatInstructions()}};var bc={};re(bc,{applyPatch:()=>kf,compare:()=>Bn});var Zn=class extends ur{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0})}static lc_name(){return"JsonOutputParser"}_concatOutputChunks(e,t){return this.diff?super._concatOutputChunks(e,t):t}_diff(e,t){if(t)return e?Bn(e,t):[{op:"replace",path:"",value:t}]}async parsePartialResult(e){return yo(e[0].text)}async parse(e){return yo(e,JSON.parse)}getFormatInstructions(){return""}};var kb=function(){let r={};r.parser=function(m,d){return new t(m,d)},r.SAXParser=t,r.SAXStream=c,r.createStream=u,r.MAX_BUFFER_LENGTH=65536;let e=["comment","sgmlDecl","textNode","tagName","doctype","procInstName","procInstBody","entity","attribName","attribValue","cdata","script"];r.EVENTS=["text","processinginstruction","sgmldeclaration","doctype","comment","opentagstart","attribute","opentag","closetag","opencdata","cdata","closecdata","error","end","ready","script","opennamespace","closenamespace"];function t(m,d){if(!(this instanceof t))return new t(m,d);var A=this;s(A),A.q=A.c="",A.bufferCheckPosition=r.MAX_BUFFER_LENGTH,A.opt=d||{},A.opt.lowercase=A.opt.lowercase||A.opt.lowercasetags,A.looseCase=A.opt.lowercase?"toLowerCase":"toUpperCase",A.tags=[],A.closed=A.closedRoot=A.sawRoot=!1,A.tag=A.error=null,A.strict=!!m,A.noscript=!!(m||A.opt.noscript),A.state=y.BEGIN,A.strictEntities=A.opt.strictEntities,A.ENTITIES=A.strictEntities?Object.create(r.XML_ENTITIES):Object.create(r.ENTITIES),A.attribList=[],A.opt.xmlns&&(A.ns=Object.create(g)),A.trackPosition=A.opt.position!==!1,A.trackPosition&&(A.position=A.line=A.column=0),$(A,"onready")}Object.create||(Object.create=function(m){function d(){}d.prototype=m;var A=new d;return A}),Object.keys||(Object.keys=function(m){var d=[];for(var A in m)m.hasOwnProperty(A)&&d.push(A);return d});function n(m){for(var d=Math.max(r.MAX_BUFFER_LENGTH,10),A=0,w=0,te=e.length;w<te;w++){var be=m[e[w]].length;if(be>d)switch(e[w]){case"textNode":J(m);break;case"cdata":P(m,"oncdata",m.cdata),m.cdata="";break;case"script":P(m,"onscript",m.script),m.script="";break;default:le(m,"Max buffer length exceeded: "+e[w])}A=Math.max(A,be)}var ye=r.MAX_BUFFER_LENGTH-A;m.bufferCheckPosition=ye+m.position}function s(m){for(var d=0,A=e.length;d<A;d++)m[e[d]]=""}function i(m){J(m),m.cdata!==""&&(P(m,"oncdata",m.cdata),m.cdata=""),m.script!==""&&(P(m,"onscript",m.script),m.script="")}t.prototype={end:function(){Nt(this)},write:_g,resume:function(){return this.error=null,this},close:function(){return this.write(null)},flush:function(){i(this)}};var o=ReadableStream;o||(o=function(){});var a=r.EVENTS.filter(function(m){return m!=="error"&&m!=="end"});function u(m,d){return new c(m,d)}function c(m,d){if(!(this instanceof c))return new c(m,d);o.apply(this),this._parser=new t(m,d),this.writable=!0,this.readable=!0;var A=this;this._parser.onend=function(){A.emit("end")},this._parser.onerror=function(w){A.emit("error",w),A._parser.error=null},this._decoder=null,a.forEach(function(w){Object.defineProperty(A,"on"+w,{get:function(){return A._parser["on"+w]},set:function(te){if(!te)return A.removeAllListeners(w),A._parser["on"+w]=te,te;A.on(w,te)},enumerable:!0,configurable:!1})})}c.prototype=Object.create(o.prototype,{constructor:{value:c}}),c.prototype.write=function(m){return this._parser.write(m.toString()),this.emit("data",m),!0},c.prototype.end=function(m){return m&&m.length&&this.write(m),this._parser.end(),!0},c.prototype.on=function(m,d){var A=this;return!A._parser["on"+m]&&a.indexOf(m)!==-1&&(A._parser["on"+m]=function(){var w=arguments.length===1?[arguments[0]]:Array.apply(null,arguments);w.splice(0,0,m),A.emit.apply(A,w)}),o.prototype.on.call(A,m,d)};var l="[CDATA[",p="DOCTYPE",h="http://www.w3.org/XML/1998/namespace",f="http://www.w3.org/2000/xmlns/",g={xml:h,xmlns:f},b=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,_=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/,I=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,v=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;function S(m){return m===" "||m===`
47
- `||m==="\r"||m===" "}function C(m){return m==='"'||m==="'"}function j(m){return m===">"||S(m)}function F(m,d){return m.test(d)}function D(m,d){return!F(m,d)}var y=0;r.STATE={BEGIN:y++,BEGIN_WHITESPACE:y++,TEXT:y++,TEXT_ENTITY:y++,OPEN_WAKA:y++,SGML_DECL:y++,SGML_DECL_QUOTED:y++,DOCTYPE:y++,DOCTYPE_QUOTED:y++,DOCTYPE_DTD:y++,DOCTYPE_DTD_QUOTED:y++,COMMENT_STARTING:y++,COMMENT:y++,COMMENT_ENDING:y++,COMMENT_ENDED:y++,CDATA:y++,CDATA_ENDING:y++,CDATA_ENDING_2:y++,PROC_INST:y++,PROC_INST_BODY:y++,PROC_INST_ENDING:y++,OPEN_TAG:y++,OPEN_TAG_SLASH:y++,ATTRIB:y++,ATTRIB_NAME:y++,ATTRIB_NAME_SAW_WHITE:y++,ATTRIB_VALUE:y++,ATTRIB_VALUE_QUOTED:y++,ATTRIB_VALUE_CLOSED:y++,ATTRIB_VALUE_UNQUOTED:y++,ATTRIB_VALUE_ENTITY_Q:y++,ATTRIB_VALUE_ENTITY_U:y++,CLOSE_TAG:y++,CLOSE_TAG_SAW_WHITE:y++,SCRIPT:y++,SCRIPT_ENDING:y++},r.XML_ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},r.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Object.keys(r.ENTITIES).forEach(function(m){var d=r.ENTITIES[m],A=typeof d=="number"?String.fromCharCode(d):d;r.ENTITIES[m]=A});for(var T in r.STATE)r.STATE[r.STATE[T]]=T;y=r.STATE;function $(m,d,A){m[d]&&m[d](A)}function P(m,d,A){m.textNode&&J(m),$(m,d,A)}function J(m){m.textNode=ie(m.opt,m.textNode),m.textNode&&$(m,"ontext",m.textNode),m.textNode=""}function ie(m,d){return m.trim&&(d=d.trim()),m.normalize&&(d=d.replace(/\s+/g," ")),d}function le(m,d){return J(m),m.trackPosition&&(d+=`
44
+ ${" ".repeat(t-2)}`);throw new Error("unsupported schema type")}static fromZodSchema(e){return new this(e)}static fromNamesAndDescriptions(e){let t=ae.object(Object.fromEntries(Object.entries(e).map(([n,s])=>[n,ae.string().describe(s)])));return new this(t)}},wc=class extends Bt{constructor({inputSchema:e}){super(...arguments),Object.defineProperty(this,"structuredInputParser",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.structuredInputParser=new Go(e)}async parse(e){let t;try{t=await this.structuredInputParser.parse(e)}catch(n){throw new qe(`Failed to parse. Text: "${e}". Error: ${n}`,e)}return this.outputProcessor(t)}getFormatInstructions(){return this.structuredInputParser.getFormatInstructions()}};var xc={};ne(xc,{applyPatch:()=>Rf,compare:()=>Kn});var Qn=class extends cr{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0})}static lc_name(){return"JsonOutputParser"}_concatOutputChunks(e,t){return this.diff?super._concatOutputChunks(e,t):t}_diff(e,t){if(t)return e?Kn(e,t):[{op:"replace",path:"",value:t}]}async parsePartialResult(e){return _o(e[0].text)}async parse(e){return _o(e,JSON.parse)}getFormatInstructions(){return""}};var jb=function(){let r={};r.parser=function(m,d){return new t(m,d)},r.SAXParser=t,r.SAXStream=c,r.createStream=u,r.MAX_BUFFER_LENGTH=65536;let e=["comment","sgmlDecl","textNode","tagName","doctype","procInstName","procInstBody","entity","attribName","attribValue","cdata","script"];r.EVENTS=["text","processinginstruction","sgmldeclaration","doctype","comment","opentagstart","attribute","opentag","closetag","opencdata","cdata","closecdata","error","end","ready","script","opennamespace","closenamespace"];function t(m,d){if(!(this instanceof t))return new t(m,d);var A=this;s(A),A.q=A.c="",A.bufferCheckPosition=r.MAX_BUFFER_LENGTH,A.opt=d||{},A.opt.lowercase=A.opt.lowercase||A.opt.lowercasetags,A.looseCase=A.opt.lowercase?"toLowerCase":"toUpperCase",A.tags=[],A.closed=A.closedRoot=A.sawRoot=!1,A.tag=A.error=null,A.strict=!!m,A.noscript=!!(m||A.opt.noscript),A.state=y.BEGIN,A.strictEntities=A.opt.strictEntities,A.ENTITIES=A.strictEntities?Object.create(r.XML_ENTITIES):Object.create(r.ENTITIES),A.attribList=[],A.opt.xmlns&&(A.ns=Object.create(g)),A.trackPosition=A.opt.position!==!1,A.trackPosition&&(A.position=A.line=A.column=0),$(A,"onready")}Object.create||(Object.create=function(m){function d(){}d.prototype=m;var A=new d;return A}),Object.keys||(Object.keys=function(m){var d=[];for(var A in m)m.hasOwnProperty(A)&&d.push(A);return d});function n(m){for(var d=Math.max(r.MAX_BUFFER_LENGTH,10),A=0,w=0,re=e.length;w<re;w++){var be=m[e[w]].length;if(be>d)switch(e[w]){case"textNode":J(m);break;case"cdata":E(m,"oncdata",m.cdata),m.cdata="";break;case"script":E(m,"onscript",m.script),m.script="";break;default:pe(m,"Max buffer length exceeded: "+e[w])}A=Math.max(A,be)}var ye=r.MAX_BUFFER_LENGTH-A;m.bufferCheckPosition=ye+m.position}function s(m){for(var d=0,A=e.length;d<A;d++)m[e[d]]=""}function i(m){J(m),m.cdata!==""&&(E(m,"oncdata",m.cdata),m.cdata=""),m.script!==""&&(E(m,"onscript",m.script),m.script="")}t.prototype={end:function(){Nt(this)},write:Pg,resume:function(){return this.error=null,this},close:function(){return this.write(null)},flush:function(){i(this)}};var o=ReadableStream;o||(o=function(){});var a=r.EVENTS.filter(function(m){return m!=="error"&&m!=="end"});function u(m,d){return new c(m,d)}function c(m,d){if(!(this instanceof c))return new c(m,d);o.apply(this),this._parser=new t(m,d),this.writable=!0,this.readable=!0;var A=this;this._parser.onend=function(){A.emit("end")},this._parser.onerror=function(w){A.emit("error",w),A._parser.error=null},this._decoder=null,a.forEach(function(w){Object.defineProperty(A,"on"+w,{get:function(){return A._parser["on"+w]},set:function(re){if(!re)return A.removeAllListeners(w),A._parser["on"+w]=re,re;A.on(w,re)},enumerable:!0,configurable:!1})})}c.prototype=Object.create(o.prototype,{constructor:{value:c}}),c.prototype.write=function(m){return this._parser.write(m.toString()),this.emit("data",m),!0},c.prototype.end=function(m){return m&&m.length&&this.write(m),this._parser.end(),!0},c.prototype.on=function(m,d){var A=this;return!A._parser["on"+m]&&a.indexOf(m)!==-1&&(A._parser["on"+m]=function(){var w=arguments.length===1?[arguments[0]]:Array.apply(null,arguments);w.splice(0,0,m),A.emit.apply(A,w)}),o.prototype.on.call(A,m,d)};var l="[CDATA[",p="DOCTYPE",h="http://www.w3.org/XML/1998/namespace",f="http://www.w3.org/2000/xmlns/",g={xml:h,xmlns:f},b=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,_=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/,P=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,v=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;function S(m){return m===" "||m===`
45
+ `||m==="\r"||m===" "}function C(m){return m==='"'||m==="'"}function j(m){return m===">"||S(m)}function F(m,d){return m.test(d)}function D(m,d){return!F(m,d)}var y=0;r.STATE={BEGIN:y++,BEGIN_WHITESPACE:y++,TEXT:y++,TEXT_ENTITY:y++,OPEN_WAKA:y++,SGML_DECL:y++,SGML_DECL_QUOTED:y++,DOCTYPE:y++,DOCTYPE_QUOTED:y++,DOCTYPE_DTD:y++,DOCTYPE_DTD_QUOTED:y++,COMMENT_STARTING:y++,COMMENT:y++,COMMENT_ENDING:y++,COMMENT_ENDED:y++,CDATA:y++,CDATA_ENDING:y++,CDATA_ENDING_2:y++,PROC_INST:y++,PROC_INST_BODY:y++,PROC_INST_ENDING:y++,OPEN_TAG:y++,OPEN_TAG_SLASH:y++,ATTRIB:y++,ATTRIB_NAME:y++,ATTRIB_NAME_SAW_WHITE:y++,ATTRIB_VALUE:y++,ATTRIB_VALUE_QUOTED:y++,ATTRIB_VALUE_CLOSED:y++,ATTRIB_VALUE_UNQUOTED:y++,ATTRIB_VALUE_ENTITY_Q:y++,ATTRIB_VALUE_ENTITY_U:y++,CLOSE_TAG:y++,CLOSE_TAG_SAW_WHITE:y++,SCRIPT:y++,SCRIPT_ENDING:y++},r.XML_ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},r.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Object.keys(r.ENTITIES).forEach(function(m){var d=r.ENTITIES[m],A=typeof d=="number"?String.fromCharCode(d):d;r.ENTITIES[m]=A});for(var T in r.STATE)r.STATE[r.STATE[T]]=T;y=r.STATE;function $(m,d,A){m[d]&&m[d](A)}function E(m,d,A){m.textNode&&J(m),$(m,d,A)}function J(m){m.textNode=oe(m.opt,m.textNode),m.textNode&&$(m,"ontext",m.textNode),m.textNode=""}function oe(m,d){return m.trim&&(d=d.trim()),m.normalize&&(d=d.replace(/\s+/g," ")),d}function pe(m,d){return J(m),m.trackPosition&&(d+=`
48
46
  Line: `+m.line+`
49
47
  Column: `+m.column+`
50
- Char: `+m.c),d=new Error(d),m.error=d,$(m,"onerror",d),m}function Nt(m){return m.sawRoot&&!m.closedRoot&&Q(m,"Unclosed root tag"),m.state!==y.BEGIN&&m.state!==y.BEGIN_WHITESPACE&&m.state!==y.TEXT&&le(m,"Unexpected end"),J(m),m.c="",m.closed=!0,$(m,"onend"),t.call(m,m.strict,m.opt),m}function Q(m,d){if(typeof m!="object"||!(m instanceof t))throw new Error("bad call to strictFail");m.strict&&le(m,d)}function Gr(m){m.strict||(m.tagName=m.tagName[m.looseCase]());var d=m.tags[m.tags.length-1]||m,A=m.tag={name:m.tagName,attributes:{}};m.opt.xmlns&&(A.ns=d.ns),m.attribList.length=0,P(m,"onopentagstart",A)}function ni(m,d){var A=m.indexOf(":"),w=A<0?["",m]:m.split(":"),te=w[0],be=w[1];return d&&m==="xmlns"&&(te="xmlns",be=""),{prefix:te,local:be}}function si(m){if(m.strict||(m.attribName=m.attribName[m.looseCase]()),m.attribList.indexOf(m.attribName)!==-1||m.tag.attributes.hasOwnProperty(m.attribName)){m.attribName=m.attribValue="";return}if(m.opt.xmlns){var d=ni(m.attribName,!0),A=d.prefix,w=d.local;if(A==="xmlns")if(w==="xml"&&m.attribValue!==h)Q(m,"xml: prefix must be bound to "+h+`
48
+ Char: `+m.c),d=new Error(d),m.error=d,$(m,"onerror",d),m}function Nt(m){return m.sawRoot&&!m.closedRoot&&Q(m,"Unclosed root tag"),m.state!==y.BEGIN&&m.state!==y.BEGIN_WHITESPACE&&m.state!==y.TEXT&&pe(m,"Unexpected end"),J(m),m.c="",m.closed=!0,$(m,"onend"),t.call(m,m.strict,m.opt),m}function Q(m,d){if(typeof m!="object"||!(m instanceof t))throw new Error("bad call to strictFail");m.strict&&pe(m,d)}function Xr(m){m.strict||(m.tagName=m.tagName[m.looseCase]());var d=m.tags[m.tags.length-1]||m,A=m.tag={name:m.tagName,attributes:{}};m.opt.xmlns&&(A.ns=d.ns),m.attribList.length=0,E(m,"onopentagstart",A)}function ni(m,d){var A=m.indexOf(":"),w=A<0?["",m]:m.split(":"),re=w[0],be=w[1];return d&&m==="xmlns"&&(re="xmlns",be=""),{prefix:re,local:be}}function si(m){if(m.strict||(m.attribName=m.attribName[m.looseCase]()),m.attribList.indexOf(m.attribName)!==-1||m.tag.attributes.hasOwnProperty(m.attribName)){m.attribName=m.attribValue="";return}if(m.opt.xmlns){var d=ni(m.attribName,!0),A=d.prefix,w=d.local;if(A==="xmlns")if(w==="xml"&&m.attribValue!==h)Q(m,"xml: prefix must be bound to "+h+`
51
49
  Actual: `+m.attribValue);else if(w==="xmlns"&&m.attribValue!==f)Q(m,"xmlns: prefix must be bound to "+f+`
52
- Actual: `+m.attribValue);else{var te=m.tag,be=m.tags[m.tags.length-1]||m;te.ns===be.ns&&(te.ns=Object.create(be.ns)),te.ns[w]=m.attribValue}m.attribList.push([m.attribName,m.attribValue])}else m.tag.attributes[m.attribName]=m.attribValue,P(m,"onattribute",{name:m.attribName,value:m.attribValue});m.attribName=m.attribValue=""}function qr(m,d){if(m.opt.xmlns){var A=m.tag,w=ni(m.tagName);A.prefix=w.prefix,A.local=w.local,A.uri=A.ns[w.prefix]||"",A.prefix&&!A.uri&&(Q(m,"Unbound namespace prefix: "+JSON.stringify(m.tagName)),A.uri=w.prefix);var te=m.tags[m.tags.length-1]||m;A.ns&&te.ns!==A.ns&&Object.keys(A.ns).forEach(function(Xp){P(m,"onopennamespace",{prefix:Xp,uri:A.ns[Xp]})});for(var be=0,ye=m.attribList.length;be<ye;be++){var Ve=m.attribList[be],it=Ve[0],Un=Ve[1],Se=ni(it,!0),sr=Se.prefix,wg=Se.local,Jp=sr===""?"":A.ns[sr]||"",wu={name:it,value:Un,prefix:sr,local:wg,uri:Jp};sr&&sr!=="xmlns"&&!Jp&&(Q(m,"Unbound namespace prefix: "+JSON.stringify(sr)),wu.uri=sr),m.tag.attributes[it]=wu,P(m,"onattribute",wu)}m.attribList.length=0}m.tag.isSelfClosing=!!d,m.sawRoot=!0,m.tags.push(m.tag),P(m,"onopentag",m.tag),d||(!m.noscript&&m.tagName.toLowerCase()==="script"?m.state=y.SCRIPT:m.state=y.TEXT,m.tag=null,m.tagName=""),m.attribName=m.attribValue="",m.attribList.length=0}function _u(m){if(!m.tagName){Q(m,"Weird empty close tag."),m.textNode+="</>",m.state=y.TEXT;return}if(m.script){if(m.tagName!=="script"){m.script+="</"+m.tagName+">",m.tagName="",m.state=y.SCRIPT;return}P(m,"onscript",m.script),m.script=""}var d=m.tags.length,A=m.tagName;m.strict||(A=A[m.looseCase]());for(var w=A;d--;){var te=m.tags[d];if(te.name!==w)Q(m,"Unexpected close tag");else break}if(d<0){Q(m,"Unmatched closing tag: "+m.tagName),m.textNode+="</"+m.tagName+">",m.state=y.TEXT;return}m.tagName=A;for(var be=m.tags.length;be-- >d;){var ye=m.tag=m.tags.pop();m.tagName=m.tag.name,P(m,"onclosetag",m.tagName);var Ve={};for(var it in ye.ns)Ve[it]=ye.ns[it];var Un=m.tags[m.tags.length-1]||m;m.opt.xmlns&&ye.ns!==Un.ns&&Object.keys(ye.ns).forEach(function(Se){var sr=ye.ns[Se];P(m,"onclosenamespace",{prefix:Se,uri:sr})})}d===0&&(m.closedRoot=!0),m.tagName=m.attribValue=m.attribName="",m.attribList.length=0,m.state=y.TEXT}function Vp(m){var d=m.entity,A=d.toLowerCase(),w,te="";return m.ENTITIES[d]?m.ENTITIES[d]:m.ENTITIES[A]?m.ENTITIES[A]:(d=A,d.charAt(0)==="#"&&(d.charAt(1)==="x"?(d=d.slice(2),w=parseInt(d,16),te=w.toString(16)):(d=d.slice(1),w=parseInt(d,10),te=w.toString(10))),d=d.replace(/^0+/,""),isNaN(w)||te.toLowerCase()!==d?(Q(m,"Invalid character entity"),"&"+m.entity+";"):String.fromCodePoint(w))}function Gp(m,d){d==="<"?(m.state=y.OPEN_WAKA,m.startTagPosition=m.position):S(d)||(Q(m,"Non-whitespace before first tag."),m.textNode=d,m.state=y.TEXT)}function qp(m,d){var A="";return d<m.length&&(A=m.charAt(d)),A}function _g(m){var d=this;if(this.error)throw this.error;if(d.closed)return le(d,"Cannot write after close. Assign an onready handler.");if(m===null)return Nt(d);typeof m=="object"&&(m=m.toString());for(var A=0,w="";w=qp(m,A++),d.c=w,!!w;)switch(d.trackPosition&&(d.position++,w===`
53
- `?(d.line++,d.column=0):d.column++),d.state){case y.BEGIN:if(d.state=y.BEGIN_WHITESPACE,w==="\uFEFF")continue;Gp(d,w);continue;case y.BEGIN_WHITESPACE:Gp(d,w);continue;case y.TEXT:if(d.sawRoot&&!d.closedRoot){for(var te=A-1;w&&w!=="<"&&w!=="&";)w=qp(m,A++),w&&d.trackPosition&&(d.position++,w===`
54
- `?(d.line++,d.column=0):d.column++);d.textNode+=m.substring(te,A-1)}w==="<"&&!(d.sawRoot&&d.closedRoot&&!d.strict)?(d.state=y.OPEN_WAKA,d.startTagPosition=d.position):(!S(w)&&(!d.sawRoot||d.closedRoot)&&Q(d,"Text data outside of root node."),w==="&"?d.state=y.TEXT_ENTITY:d.textNode+=w);continue;case y.SCRIPT:w==="<"?d.state=y.SCRIPT_ENDING:d.script+=w;continue;case y.SCRIPT_ENDING:w==="/"?d.state=y.CLOSE_TAG:(d.script+="<"+w,d.state=y.SCRIPT);continue;case y.OPEN_WAKA:if(w==="!")d.state=y.SGML_DECL,d.sgmlDecl="";else if(!S(w))if(F(b,w))d.state=y.OPEN_TAG,d.tagName=w;else if(w==="/")d.state=y.CLOSE_TAG,d.tagName="";else if(w==="?")d.state=y.PROC_INST,d.procInstName=d.procInstBody="";else{if(Q(d,"Unencoded <"),d.startTagPosition+1<d.position){var be=d.position-d.startTagPosition;w=new Array(be).join(" ")+w}d.textNode+="<"+w,d.state=y.TEXT}continue;case y.SGML_DECL:(d.sgmlDecl+w).toUpperCase()===l?(P(d,"onopencdata"),d.state=y.CDATA,d.sgmlDecl="",d.cdata=""):d.sgmlDecl+w==="--"?(d.state=y.COMMENT,d.comment="",d.sgmlDecl=""):(d.sgmlDecl+w).toUpperCase()===p?(d.state=y.DOCTYPE,(d.doctype||d.sawRoot)&&Q(d,"Inappropriately located doctype declaration"),d.doctype="",d.sgmlDecl=""):w===">"?(P(d,"onsgmldeclaration",d.sgmlDecl),d.sgmlDecl="",d.state=y.TEXT):(C(w)&&(d.state=y.SGML_DECL_QUOTED),d.sgmlDecl+=w);continue;case y.SGML_DECL_QUOTED:w===d.q&&(d.state=y.SGML_DECL,d.q=""),d.sgmlDecl+=w;continue;case y.DOCTYPE:w===">"?(d.state=y.TEXT,P(d,"ondoctype",d.doctype),d.doctype=!0):(d.doctype+=w,w==="["?d.state=y.DOCTYPE_DTD:C(w)&&(d.state=y.DOCTYPE_QUOTED,d.q=w));continue;case y.DOCTYPE_QUOTED:d.doctype+=w,w===d.q&&(d.q="",d.state=y.DOCTYPE);continue;case y.DOCTYPE_DTD:d.doctype+=w,w==="]"?d.state=y.DOCTYPE:C(w)&&(d.state=y.DOCTYPE_DTD_QUOTED,d.q=w);continue;case y.DOCTYPE_DTD_QUOTED:d.doctype+=w,w===d.q&&(d.state=y.DOCTYPE_DTD,d.q="");continue;case y.COMMENT:w==="-"?d.state=y.COMMENT_ENDING:d.comment+=w;continue;case y.COMMENT_ENDING:w==="-"?(d.state=y.COMMENT_ENDED,d.comment=ie(d.opt,d.comment),d.comment&&P(d,"oncomment",d.comment),d.comment=""):(d.comment+="-"+w,d.state=y.COMMENT);continue;case y.COMMENT_ENDED:w!==">"?(Q(d,"Malformed comment"),d.comment+="--"+w,d.state=y.COMMENT):d.state=y.TEXT;continue;case y.CDATA:w==="]"?d.state=y.CDATA_ENDING:d.cdata+=w;continue;case y.CDATA_ENDING:w==="]"?d.state=y.CDATA_ENDING_2:(d.cdata+="]"+w,d.state=y.CDATA);continue;case y.CDATA_ENDING_2:w===">"?(d.cdata&&P(d,"oncdata",d.cdata),P(d,"onclosecdata"),d.cdata="",d.state=y.TEXT):w==="]"?d.cdata+="]":(d.cdata+="]]"+w,d.state=y.CDATA);continue;case y.PROC_INST:w==="?"?d.state=y.PROC_INST_ENDING:S(w)?d.state=y.PROC_INST_BODY:d.procInstName+=w;continue;case y.PROC_INST_BODY:if(!d.procInstBody&&S(w))continue;w==="?"?d.state=y.PROC_INST_ENDING:d.procInstBody+=w;continue;case y.PROC_INST_ENDING:w===">"?(P(d,"onprocessinginstruction",{name:d.procInstName,body:d.procInstBody}),d.procInstName=d.procInstBody="",d.state=y.TEXT):(d.procInstBody+="?"+w,d.state=y.PROC_INST_BODY);continue;case y.OPEN_TAG:F(_,w)?d.tagName+=w:(Gr(d),w===">"?qr(d):w==="/"?d.state=y.OPEN_TAG_SLASH:(S(w)||Q(d,"Invalid character in tag name"),d.state=y.ATTRIB));continue;case y.OPEN_TAG_SLASH:w===">"?(qr(d,!0),_u(d)):(Q(d,"Forward-slash in opening tag not followed by >"),d.state=y.ATTRIB);continue;case y.ATTRIB:if(S(w))continue;w===">"?qr(d):w==="/"?d.state=y.OPEN_TAG_SLASH:F(b,w)?(d.attribName=w,d.attribValue="",d.state=y.ATTRIB_NAME):Q(d,"Invalid attribute name");continue;case y.ATTRIB_NAME:w==="="?d.state=y.ATTRIB_VALUE:w===">"?(Q(d,"Attribute without value"),d.attribValue=d.attribName,si(d),qr(d)):S(w)?d.state=y.ATTRIB_NAME_SAW_WHITE:F(_,w)?d.attribName+=w:Q(d,"Invalid attribute name");continue;case y.ATTRIB_NAME_SAW_WHITE:if(w==="=")d.state=y.ATTRIB_VALUE;else{if(S(w))continue;Q(d,"Attribute without value"),d.tag.attributes[d.attribName]="",d.attribValue="",P(d,"onattribute",{name:d.attribName,value:""}),d.attribName="",w===">"?qr(d):F(b,w)?(d.attribName=w,d.state=y.ATTRIB_NAME):(Q(d,"Invalid attribute name"),d.state=y.ATTRIB)}continue;case y.ATTRIB_VALUE:if(S(w))continue;C(w)?(d.q=w,d.state=y.ATTRIB_VALUE_QUOTED):(Q(d,"Unquoted attribute value"),d.state=y.ATTRIB_VALUE_UNQUOTED,d.attribValue=w);continue;case y.ATTRIB_VALUE_QUOTED:if(w!==d.q){w==="&"?d.state=y.ATTRIB_VALUE_ENTITY_Q:d.attribValue+=w;continue}si(d),d.q="",d.state=y.ATTRIB_VALUE_CLOSED;continue;case y.ATTRIB_VALUE_CLOSED:S(w)?d.state=y.ATTRIB:w===">"?qr(d):w==="/"?d.state=y.OPEN_TAG_SLASH:F(b,w)?(Q(d,"No whitespace between attributes"),d.attribName=w,d.attribValue="",d.state=y.ATTRIB_NAME):Q(d,"Invalid attribute name");continue;case y.ATTRIB_VALUE_UNQUOTED:if(!j(w)){w==="&"?d.state=y.ATTRIB_VALUE_ENTITY_U:d.attribValue+=w;continue}si(d),w===">"?qr(d):d.state=y.ATTRIB;continue;case y.CLOSE_TAG:if(d.tagName)w===">"?_u(d):F(_,w)?d.tagName+=w:d.script?(d.script+="</"+d.tagName,d.tagName="",d.state=y.SCRIPT):(S(w)||Q(d,"Invalid tagname in closing tag"),d.state=y.CLOSE_TAG_SAW_WHITE);else{if(S(w))continue;D(b,w)?d.script?(d.script+="</"+w,d.state=y.SCRIPT):Q(d,"Invalid tagname in closing tag."):d.tagName=w}continue;case y.CLOSE_TAG_SAW_WHITE:if(S(w))continue;w===">"?_u(d):Q(d,"Invalid characters in closing tag");continue;case y.TEXT_ENTITY:case y.ATTRIB_VALUE_ENTITY_Q:case y.ATTRIB_VALUE_ENTITY_U:var ye,Ve;switch(d.state){case y.TEXT_ENTITY:ye=y.TEXT,Ve="textNode";break;case y.ATTRIB_VALUE_ENTITY_Q:ye=y.ATTRIB_VALUE_QUOTED,Ve="attribValue";break;case y.ATTRIB_VALUE_ENTITY_U:ye=y.ATTRIB_VALUE_UNQUOTED,Ve="attribValue";break}if(w===";")if(d.opt.unparsedEntities){var it=Vp(d);d.entity="",d.state=ye,d.write(it)}else d[Ve]+=Vp(d),d.entity="",d.state=ye;else F(d.entity.length?v:I,w)?d.entity+=w:(Q(d,"Invalid character in entity name"),d[Ve]+="&"+d.entity+w,d.entity="",d.state=ye);continue;default:throw new Error(d,"Unknown state: "+d.state)}return d.position>=d.bufferCheckPosition&&n(d),d}return String.fromCodePoint||(function(){var m=String.fromCharCode,d=Math.floor,A=function(){var w=16384,te=[],be,ye,Ve=-1,it=arguments.length;if(!it)return"";for(var Un="";++Ve<it;){var Se=Number(arguments[Ve]);if(!isFinite(Se)||Se<0||Se>1114111||d(Se)!==Se)throw RangeError("Invalid code point: "+Se);Se<=65535?te.push(Se):(Se-=65536,be=(Se>>10)+55296,ye=Se%1024+56320,te.push(be,ye)),(Ve+1===it||te.length>w)&&(Un+=m.apply(null,te),te.length=0)}return Un};Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:A,configurable:!0,writable:!0}):String.fromCodePoint=A})(),r},dh=kb();var yc=`The output should be formatted as a XML file.
50
+ Actual: `+m.attribValue);else{var re=m.tag,be=m.tags[m.tags.length-1]||m;re.ns===be.ns&&(re.ns=Object.create(be.ns)),re.ns[w]=m.attribValue}m.attribList.push([m.attribName,m.attribValue])}else m.tag.attributes[m.attribName]=m.attribValue,E(m,"onattribute",{name:m.attribName,value:m.attribValue});m.attribName=m.attribValue=""}function Yr(m,d){if(m.opt.xmlns){var A=m.tag,w=ni(m.tagName);A.prefix=w.prefix,A.local=w.local,A.uri=A.ns[w.prefix]||"",A.prefix&&!A.uri&&(Q(m,"Unbound namespace prefix: "+JSON.stringify(m.tagName)),A.uri=w.prefix);var re=m.tags[m.tags.length-1]||m;A.ns&&re.ns!==A.ns&&Object.keys(A.ns).forEach(function(ef){E(m,"onopennamespace",{prefix:ef,uri:A.ns[ef]})});for(var be=0,ye=m.attribList.length;be<ye;be++){var Ve=m.attribList[be],it=Ve[0],zn=Ve[1],Se=ni(it,!0),ir=Se.prefix,Eg=Se.local,Qp=ir===""?"":A.ns[ir]||"",Ou={name:it,value:zn,prefix:ir,local:Eg,uri:Qp};ir&&ir!=="xmlns"&&!Qp&&(Q(m,"Unbound namespace prefix: "+JSON.stringify(ir)),Ou.uri=ir),m.tag.attributes[it]=Ou,E(m,"onattribute",Ou)}m.attribList.length=0}m.tag.isSelfClosing=!!d,m.sawRoot=!0,m.tags.push(m.tag),E(m,"onopentag",m.tag),d||(!m.noscript&&m.tagName.toLowerCase()==="script"?m.state=y.SCRIPT:m.state=y.TEXT,m.tag=null,m.tagName=""),m.attribName=m.attribValue="",m.attribList.length=0}function Au(m){if(!m.tagName){Q(m,"Weird empty close tag."),m.textNode+="</>",m.state=y.TEXT;return}if(m.script){if(m.tagName!=="script"){m.script+="</"+m.tagName+">",m.tagName="",m.state=y.SCRIPT;return}E(m,"onscript",m.script),m.script=""}var d=m.tags.length,A=m.tagName;m.strict||(A=A[m.looseCase]());for(var w=A;d--;){var re=m.tags[d];if(re.name!==w)Q(m,"Unexpected close tag");else break}if(d<0){Q(m,"Unmatched closing tag: "+m.tagName),m.textNode+="</"+m.tagName+">",m.state=y.TEXT;return}m.tagName=A;for(var be=m.tags.length;be-- >d;){var ye=m.tag=m.tags.pop();m.tagName=m.tag.name,E(m,"onclosetag",m.tagName);var Ve={};for(var it in ye.ns)Ve[it]=ye.ns[it];var zn=m.tags[m.tags.length-1]||m;m.opt.xmlns&&ye.ns!==zn.ns&&Object.keys(ye.ns).forEach(function(Se){var ir=ye.ns[Se];E(m,"onclosenamespace",{prefix:Se,uri:ir})})}d===0&&(m.closedRoot=!0),m.tagName=m.attribValue=m.attribName="",m.attribList.length=0,m.state=y.TEXT}function Xp(m){var d=m.entity,A=d.toLowerCase(),w,re="";return m.ENTITIES[d]?m.ENTITIES[d]:m.ENTITIES[A]?m.ENTITIES[A]:(d=A,d.charAt(0)==="#"&&(d.charAt(1)==="x"?(d=d.slice(2),w=parseInt(d,16),re=w.toString(16)):(d=d.slice(1),w=parseInt(d,10),re=w.toString(10))),d=d.replace(/^0+/,""),isNaN(w)||re.toLowerCase()!==d?(Q(m,"Invalid character entity"),"&"+m.entity+";"):String.fromCodePoint(w))}function Yp(m,d){d==="<"?(m.state=y.OPEN_WAKA,m.startTagPosition=m.position):S(d)||(Q(m,"Non-whitespace before first tag."),m.textNode=d,m.state=y.TEXT)}function Zp(m,d){var A="";return d<m.length&&(A=m.charAt(d)),A}function Pg(m){var d=this;if(this.error)throw this.error;if(d.closed)return pe(d,"Cannot write after close. Assign an onready handler.");if(m===null)return Nt(d);typeof m=="object"&&(m=m.toString());for(var A=0,w="";w=Zp(m,A++),d.c=w,!!w;)switch(d.trackPosition&&(d.position++,w===`
51
+ `?(d.line++,d.column=0):d.column++),d.state){case y.BEGIN:if(d.state=y.BEGIN_WHITESPACE,w==="\uFEFF")continue;Yp(d,w);continue;case y.BEGIN_WHITESPACE:Yp(d,w);continue;case y.TEXT:if(d.sawRoot&&!d.closedRoot){for(var re=A-1;w&&w!=="<"&&w!=="&";)w=Zp(m,A++),w&&d.trackPosition&&(d.position++,w===`
52
+ `?(d.line++,d.column=0):d.column++);d.textNode+=m.substring(re,A-1)}w==="<"&&!(d.sawRoot&&d.closedRoot&&!d.strict)?(d.state=y.OPEN_WAKA,d.startTagPosition=d.position):(!S(w)&&(!d.sawRoot||d.closedRoot)&&Q(d,"Text data outside of root node."),w==="&"?d.state=y.TEXT_ENTITY:d.textNode+=w);continue;case y.SCRIPT:w==="<"?d.state=y.SCRIPT_ENDING:d.script+=w;continue;case y.SCRIPT_ENDING:w==="/"?d.state=y.CLOSE_TAG:(d.script+="<"+w,d.state=y.SCRIPT);continue;case y.OPEN_WAKA:if(w==="!")d.state=y.SGML_DECL,d.sgmlDecl="";else if(!S(w))if(F(b,w))d.state=y.OPEN_TAG,d.tagName=w;else if(w==="/")d.state=y.CLOSE_TAG,d.tagName="";else if(w==="?")d.state=y.PROC_INST,d.procInstName=d.procInstBody="";else{if(Q(d,"Unencoded <"),d.startTagPosition+1<d.position){var be=d.position-d.startTagPosition;w=new Array(be).join(" ")+w}d.textNode+="<"+w,d.state=y.TEXT}continue;case y.SGML_DECL:(d.sgmlDecl+w).toUpperCase()===l?(E(d,"onopencdata"),d.state=y.CDATA,d.sgmlDecl="",d.cdata=""):d.sgmlDecl+w==="--"?(d.state=y.COMMENT,d.comment="",d.sgmlDecl=""):(d.sgmlDecl+w).toUpperCase()===p?(d.state=y.DOCTYPE,(d.doctype||d.sawRoot)&&Q(d,"Inappropriately located doctype declaration"),d.doctype="",d.sgmlDecl=""):w===">"?(E(d,"onsgmldeclaration",d.sgmlDecl),d.sgmlDecl="",d.state=y.TEXT):(C(w)&&(d.state=y.SGML_DECL_QUOTED),d.sgmlDecl+=w);continue;case y.SGML_DECL_QUOTED:w===d.q&&(d.state=y.SGML_DECL,d.q=""),d.sgmlDecl+=w;continue;case y.DOCTYPE:w===">"?(d.state=y.TEXT,E(d,"ondoctype",d.doctype),d.doctype=!0):(d.doctype+=w,w==="["?d.state=y.DOCTYPE_DTD:C(w)&&(d.state=y.DOCTYPE_QUOTED,d.q=w));continue;case y.DOCTYPE_QUOTED:d.doctype+=w,w===d.q&&(d.q="",d.state=y.DOCTYPE);continue;case y.DOCTYPE_DTD:d.doctype+=w,w==="]"?d.state=y.DOCTYPE:C(w)&&(d.state=y.DOCTYPE_DTD_QUOTED,d.q=w);continue;case y.DOCTYPE_DTD_QUOTED:d.doctype+=w,w===d.q&&(d.state=y.DOCTYPE_DTD,d.q="");continue;case y.COMMENT:w==="-"?d.state=y.COMMENT_ENDING:d.comment+=w;continue;case y.COMMENT_ENDING:w==="-"?(d.state=y.COMMENT_ENDED,d.comment=oe(d.opt,d.comment),d.comment&&E(d,"oncomment",d.comment),d.comment=""):(d.comment+="-"+w,d.state=y.COMMENT);continue;case y.COMMENT_ENDED:w!==">"?(Q(d,"Malformed comment"),d.comment+="--"+w,d.state=y.COMMENT):d.state=y.TEXT;continue;case y.CDATA:w==="]"?d.state=y.CDATA_ENDING:d.cdata+=w;continue;case y.CDATA_ENDING:w==="]"?d.state=y.CDATA_ENDING_2:(d.cdata+="]"+w,d.state=y.CDATA);continue;case y.CDATA_ENDING_2:w===">"?(d.cdata&&E(d,"oncdata",d.cdata),E(d,"onclosecdata"),d.cdata="",d.state=y.TEXT):w==="]"?d.cdata+="]":(d.cdata+="]]"+w,d.state=y.CDATA);continue;case y.PROC_INST:w==="?"?d.state=y.PROC_INST_ENDING:S(w)?d.state=y.PROC_INST_BODY:d.procInstName+=w;continue;case y.PROC_INST_BODY:if(!d.procInstBody&&S(w))continue;w==="?"?d.state=y.PROC_INST_ENDING:d.procInstBody+=w;continue;case y.PROC_INST_ENDING:w===">"?(E(d,"onprocessinginstruction",{name:d.procInstName,body:d.procInstBody}),d.procInstName=d.procInstBody="",d.state=y.TEXT):(d.procInstBody+="?"+w,d.state=y.PROC_INST_BODY);continue;case y.OPEN_TAG:F(_,w)?d.tagName+=w:(Xr(d),w===">"?Yr(d):w==="/"?d.state=y.OPEN_TAG_SLASH:(S(w)||Q(d,"Invalid character in tag name"),d.state=y.ATTRIB));continue;case y.OPEN_TAG_SLASH:w===">"?(Yr(d,!0),Au(d)):(Q(d,"Forward-slash in opening tag not followed by >"),d.state=y.ATTRIB);continue;case y.ATTRIB:if(S(w))continue;w===">"?Yr(d):w==="/"?d.state=y.OPEN_TAG_SLASH:F(b,w)?(d.attribName=w,d.attribValue="",d.state=y.ATTRIB_NAME):Q(d,"Invalid attribute name");continue;case y.ATTRIB_NAME:w==="="?d.state=y.ATTRIB_VALUE:w===">"?(Q(d,"Attribute without value"),d.attribValue=d.attribName,si(d),Yr(d)):S(w)?d.state=y.ATTRIB_NAME_SAW_WHITE:F(_,w)?d.attribName+=w:Q(d,"Invalid attribute name");continue;case y.ATTRIB_NAME_SAW_WHITE:if(w==="=")d.state=y.ATTRIB_VALUE;else{if(S(w))continue;Q(d,"Attribute without value"),d.tag.attributes[d.attribName]="",d.attribValue="",E(d,"onattribute",{name:d.attribName,value:""}),d.attribName="",w===">"?Yr(d):F(b,w)?(d.attribName=w,d.state=y.ATTRIB_NAME):(Q(d,"Invalid attribute name"),d.state=y.ATTRIB)}continue;case y.ATTRIB_VALUE:if(S(w))continue;C(w)?(d.q=w,d.state=y.ATTRIB_VALUE_QUOTED):(Q(d,"Unquoted attribute value"),d.state=y.ATTRIB_VALUE_UNQUOTED,d.attribValue=w);continue;case y.ATTRIB_VALUE_QUOTED:if(w!==d.q){w==="&"?d.state=y.ATTRIB_VALUE_ENTITY_Q:d.attribValue+=w;continue}si(d),d.q="",d.state=y.ATTRIB_VALUE_CLOSED;continue;case y.ATTRIB_VALUE_CLOSED:S(w)?d.state=y.ATTRIB:w===">"?Yr(d):w==="/"?d.state=y.OPEN_TAG_SLASH:F(b,w)?(Q(d,"No whitespace between attributes"),d.attribName=w,d.attribValue="",d.state=y.ATTRIB_NAME):Q(d,"Invalid attribute name");continue;case y.ATTRIB_VALUE_UNQUOTED:if(!j(w)){w==="&"?d.state=y.ATTRIB_VALUE_ENTITY_U:d.attribValue+=w;continue}si(d),w===">"?Yr(d):d.state=y.ATTRIB;continue;case y.CLOSE_TAG:if(d.tagName)w===">"?Au(d):F(_,w)?d.tagName+=w:d.script?(d.script+="</"+d.tagName,d.tagName="",d.state=y.SCRIPT):(S(w)||Q(d,"Invalid tagname in closing tag"),d.state=y.CLOSE_TAG_SAW_WHITE);else{if(S(w))continue;D(b,w)?d.script?(d.script+="</"+w,d.state=y.SCRIPT):Q(d,"Invalid tagname in closing tag."):d.tagName=w}continue;case y.CLOSE_TAG_SAW_WHITE:if(S(w))continue;w===">"?Au(d):Q(d,"Invalid characters in closing tag");continue;case y.TEXT_ENTITY:case y.ATTRIB_VALUE_ENTITY_Q:case y.ATTRIB_VALUE_ENTITY_U:var ye,Ve;switch(d.state){case y.TEXT_ENTITY:ye=y.TEXT,Ve="textNode";break;case y.ATTRIB_VALUE_ENTITY_Q:ye=y.ATTRIB_VALUE_QUOTED,Ve="attribValue";break;case y.ATTRIB_VALUE_ENTITY_U:ye=y.ATTRIB_VALUE_UNQUOTED,Ve="attribValue";break}if(w===";")if(d.opt.unparsedEntities){var it=Xp(d);d.entity="",d.state=ye,d.write(it)}else d[Ve]+=Xp(d),d.entity="",d.state=ye;else F(d.entity.length?v:P,w)?d.entity+=w:(Q(d,"Invalid character in entity name"),d[Ve]+="&"+d.entity+w,d.entity="",d.state=ye);continue;default:throw new Error(d,"Unknown state: "+d.state)}return d.position>=d.bufferCheckPosition&&n(d),d}return String.fromCodePoint||(function(){var m=String.fromCharCode,d=Math.floor,A=function(){var w=16384,re=[],be,ye,Ve=-1,it=arguments.length;if(!it)return"";for(var zn="";++Ve<it;){var Se=Number(arguments[Ve]);if(!isFinite(Se)||Se<0||Se>1114111||d(Se)!==Se)throw RangeError("Invalid code point: "+Se);Se<=65535?re.push(Se):(Se-=65536,be=(Se>>10)+55296,ye=Se%1024+56320,re.push(be,ye)),(Ve+1===it||re.length>w)&&(zn+=m.apply(null,re),re.length=0)}return zn};Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:A,configurable:!0,writable:!0}):String.fromCodePoint=A})(),r},yh=jb();var vc=`The output should be formatted as a XML file.
55
53
  1. Output should conform to the tags below.
56
54
  2. If tags are not given, make them on your own.
57
55
  3. Remember to always open and close all the tags.
@@ -73,41 +71,41 @@ As an example, for the tags ["foo", "bar", "baz"]:
73
71
  Here are the output tags:
74
72
  \`\`\`
75
73
  {tags}
76
- \`\`\``,_c=class extends ur{constructor(e){super(e),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),this.tags=e?.tags}static lc_name(){return"XMLOutputParser"}_diff(e,t){if(t)return e?Bn(e,t):[{op:"replace",path:"",value:t}]}async parsePartialResult(e){return wc(e[0].text)}async parse(e){return wc(e)}getFormatInstructions(){return!!(this.tags&&this.tags.length>0)?yc.replace("{tags}",this.tags?.join(", ")??""):yc}},Sb=r=>r.split(`
74
+ \`\`\``,Ac=class extends cr{constructor(e){super(e),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),this.tags=e?.tags}static lc_name(){return"XMLOutputParser"}_diff(e,t){if(t)return e?Kn(e,t):[{op:"replace",path:"",value:t}]}async parsePartialResult(e){return Oc(e[0].text)}async parse(e){return Oc(e)}getFormatInstructions(){return!!(this.tags&&this.tags.length>0)?vc.replace("{tags}",this.tags?.join(", ")??""):vc}},Mb=r=>r.split(`
77
75
  `).map(e=>e.replace(/^\s+/,"")).join(`
78
- `).trim(),mh=r=>{if(Object.keys(r).length===0)return{};let e={};return r.children.length>0?(e[r.name]=r.children.map(mh),e):(e[r.name]=r.text??void 0,e)};function wc(r){let e=Sb(r),t=dh.parser(!0),n={},s=[];t.onopentag=a=>{let u={name:a.name,attributes:a.attributes,children:[],text:"",isSelfClosing:a.isSelfClosing};s.length>0?s[s.length-1].children.push(u):n=u,a.isSelfClosing||s.push(u)},t.onclosetag=()=>{if(s.length>0){let a=s.pop();s.length===0&&a&&(n=a)}},t.ontext=a=>{if(s.length>0){let u=s[s.length-1];u.text+=a}},t.onattribute=a=>{if(s.length>0){let u=s[s.length-1];u.attributes[a.name]=a.value}};let i=/```(xml)?(.*)```/s.exec(e),o=i?i[2]:e;return t.write(o).close(),n&&n.name==="?xml"&&(n=n.children[0]),mh(n)}var Oc={};re(Oc,{AIMessagePromptTemplate:()=>Yg,BaseChatPromptTemplate:()=>qg,BaseMessagePromptTemplate:()=>Hg,BaseMessageStringPromptTemplate:()=>Gg,BasePromptTemplate:()=>Fu,BaseStringPromptTemplate:()=>Rg,ChatMessagePromptTemplate:()=>Jg,ChatPromptTemplate:()=>Xr,DEFAULT_FORMATTER_MAPPING:()=>$g,DEFAULT_PARSER_MAPPING:()=>Lg,DictPromptTemplate:()=>Wg,FewShotChatMessagePromptTemplate:()=>Qg,FewShotPromptTemplate:()=>Zg,HumanMessagePromptTemplate:()=>Xg,ImagePromptTemplate:()=>Kg,MessagesPlaceholder:()=>Vg,PipelinePromptTemplate:()=>vc,PromptTemplate:()=>Bg,StructuredPrompt:()=>Ac,SystemMessagePromptTemplate:()=>Lu,checkValidTemplate:()=>zg,interpolateFString:()=>Mg,interpolateMustache:()=>Dg,parseFString:()=>Ng,parseMustache:()=>jg,parseTemplate:()=>Ug,renderTemplate:()=>Fg});var vc=class r extends Fu{static lc_name(){return"PipelinePromptTemplate"}constructor(e){super({...e,inputVariables:[]}),Object.defineProperty(this,"pipelinePrompts",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"finalPrompt",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.pipelinePrompts=e.pipelinePrompts,this.finalPrompt=e.finalPrompt,this.inputVariables=this.computeInputValues()}computeInputValues(){let e=this.pipelinePrompts.map(n=>n.name),t=this.pipelinePrompts.map(n=>n.prompt.inputVariables.filter(s=>!e.includes(s))).flat();return[...new Set(t)]}static extractRequiredInputValues(e,t){return t.reduce((n,s)=>(n[s]=e[s],n),{})}async formatPipelinePrompts(e){let t=await this.mergePartialAndUserVariables(e);for(let{name:n,prompt:s}of this.pipelinePrompts){let i=r.extractRequiredInputValues(t,s.inputVariables);s instanceof Xr?t[n]=await s.formatMessages(i):t[n]=await s.format(i)}return r.extractRequiredInputValues(t,this.finalPrompt.inputVariables)}async formatPromptValue(e){return this.finalPrompt.formatPromptValue(await this.formatPipelinePrompts(e))}async format(e){return this.finalPrompt.format(await this.formatPipelinePrompts(e))}async partial(e){let t={...this};return t.inputVariables=this.inputVariables.filter(n=>!(n in e)),t.partialVariables={...this.partialVariables??{},...e},new r(t)}serialize(){throw new Error("Not implemented.")}_getPromptType(){return"pipeline"}};function gh(r){return typeof r=="object"&&r!=null&&"withStructuredOutput"in r&&typeof r.withStructuredOutput=="function"}function Cb(r){return typeof r=="object"&&r!=null&&"lc_id"in r&&Array.isArray(r.lc_id)&&r.lc_id.join("/")==="langchain_core/runnables/RunnableBinding"}var Ac=class r extends Xr{get lc_aliases(){return{...super.lc_aliases,schema:"schema_"}}constructor(e){super(e),Object.defineProperty(this,"schema",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"method",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","prompts","structured"]}),this.schema=e.schema,this.method=e.method}pipe(e){if(gh(e))return super.pipe(e.withStructuredOutput(this.schema));if(Cb(e)&&gh(e.bound))return super.pipe(new vr({bound:e.bound.withStructuredOutput(this.schema,...this.method?[{method:this.method}]:[]),kwargs:e.kwargs??{},config:e.config,configFactories:e.configFactories}));throw new Error('Structured prompts need to be piped to a language model that supports the "withStructuredOutput()" method.')}static fromMessagesAndSchema(e,t,n){return r.fromMessages(e,{schema:t,method:n})}};var Pc={};re(Pc,{BaseRetriever:()=>nn});var nn=class extends Z{constructor(e){super(e),Object.defineProperty(this,"callbacks",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"verbose",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.callbacks=e?.callbacks,this.tags=e?.tags??[],this.metadata=e?.metadata??{},this.verbose=e?.verbose??!1}_getRelevantDocuments(e,t){throw new Error("Not implemented!")}async invoke(e,t){return this.getRelevantDocuments(e,ut(t))}async getRelevantDocuments(e,t){let n=ut(zn(t)),i=await(await at.configure(n.callbacks,this.callbacks,n.tags,this.tags,n.metadata,this.metadata,{verbose:this.verbose}))?.handleRetrieverStart(this.toJSON(),e,n.runId,void 0,void 0,void 0,n.runName);try{let o=await this._getRelevantDocuments(e,i);return await i?.handleRetrieverEnd(o),o}catch(o){throw await i?.handleRetrieverError(o),o}}};var Ic={};re(Ic,{BaseStore:()=>Go,InMemoryStore:()=>Ec});var Go=class extends ir{},Ec=class extends Go{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","storage"]}),Object.defineProperty(this,"store",{enumerable:!0,configurable:!0,writable:!0,value:{}})}async mget(e){return e.map(t=>this.store[t])}async mset(e){for(let[t,n]of e)this.store[t]=n}async mdelete(e){for(let t of e)delete this.store[t]}async*yieldKeys(e){let t=Object.keys(this.store);for(let n of t)(e===void 0||n.startsWith(e))&&(yield n)}};var Sc={};re(Sc,{BaseToolkit:()=>kc,DynamicStructuredTool:()=>qo,DynamicTool:()=>wi,StructuredTool:()=>sn,Tool:()=>Qn,ToolInputParsingException:()=>bo,isLangChainTool:()=>Er,isRunnableToolLike:()=>yi,isStructuredTool:()=>bi,isStructuredToolParams:()=>_i,tool:()=>Tb});function bi(r){return r!==void 0&&Array.isArray(r.lc_namespace)}function yi(r){return r!==void 0&&Z.isRunnable(r)&&"lc_name"in r.constructor&&typeof r.constructor.lc_name=="function"&&r.constructor.lc_name()==="RunnableToolLike"}function _i(r){return!!r&&typeof r=="object"&&"name"in r&&"schema"in r&&(Ze(r.schema)||r.schema!=null&&typeof r.schema=="object"&&"type"in r.schema&&typeof r.schema.type=="string"&&["null","boolean","object","array","number","string"].includes(r.schema.type))}function Er(r){return _i(r)||yi(r)||bi(r)}var sn=class extends Xn{get lc_namespace(){return["langchain","tools"]}constructor(e){super(e??{}),Object.defineProperty(this,"returnDirect",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"verboseParsingErrors",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"responseFormat",{enumerable:!0,configurable:!0,writable:!0,value:"content"}),Object.defineProperty(this,"defaultConfig",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.verboseParsingErrors=e?.verboseParsingErrors??this.verboseParsingErrors,this.responseFormat=e?.responseFormat??this.responseFormat,this.defaultConfig=e?.defaultConfig??this.defaultConfig,this.metadata=e?.metadata??this.metadata}async invoke(e,t){let n,s=ut(ze(this.defaultConfig,t));return go(e)?(n=e.args,s={...s,toolCall:e}):n=e,this.call(n,s)}async call(e,t,n){let s=go(e)?e.args:e,i;if(Ze(this.schema))try{i=await ui(this.schema,s)}catch(g){let b="Received tool input did not match expected schema";throw this.verboseParsingErrors&&(b=`${b}
79
- Details: ${g.message}`),new bo(b,JSON.stringify(e))}else{let g=Df(s,this.schema);if(!g.valid){let b="Received tool input did not match expected schema";throw this.verboseParsingErrors&&(b=`${b}
76
+ `).trim(),_h=r=>{if(Object.keys(r).length===0)return{};let e={};return r.children.length>0?(e[r.name]=r.children.map(_h),e):(e[r.name]=r.text??void 0,e)};function Oc(r){let e=Mb(r),t=yh.parser(!0),n={},s=[];t.onopentag=a=>{let u={name:a.name,attributes:a.attributes,children:[],text:"",isSelfClosing:a.isSelfClosing};s.length>0?s[s.length-1].children.push(u):n=u,a.isSelfClosing||s.push(u)},t.onclosetag=()=>{if(s.length>0){let a=s.pop();s.length===0&&a&&(n=a)}},t.ontext=a=>{if(s.length>0){let u=s[s.length-1];u.text+=a}},t.onattribute=a=>{if(s.length>0){let u=s[s.length-1];u.attributes[a.name]=a.value}};let i=/```(xml)?(.*)```/s.exec(e),o=i?i[2]:e;return t.write(o).close(),n&&n.name==="?xml"&&(n=n.children[0]),_h(n)}var kc={};ne(kc,{AIMessagePromptTemplate:()=>nb,BaseChatPromptTemplate:()=>eb,BaseMessagePromptTemplate:()=>Yg,BaseMessageStringPromptTemplate:()=>Qg,BasePromptTemplate:()=>Ku,BaseStringPromptTemplate:()=>Lg,ChatMessagePromptTemplate:()=>tb,ChatPromptTemplate:()=>Qr,DEFAULT_FORMATTER_MAPPING:()=>Kg,DEFAULT_PARSER_MAPPING:()=>Wg,DictPromptTemplate:()=>Xg,FewShotChatMessagePromptTemplate:()=>ib,FewShotPromptTemplate:()=>sb,HumanMessagePromptTemplate:()=>rb,ImagePromptTemplate:()=>Jg,MessagesPlaceholder:()=>Zg,PipelinePromptTemplate:()=>Ec,PromptTemplate:()=>qg,StructuredPrompt:()=>Ic,SystemMessagePromptTemplate:()=>Bu,checkValidTemplate:()=>Gg,interpolateFString:()=>zg,interpolateMustache:()=>Bg,parseFString:()=>Fg,parseMustache:()=>Ug,parseTemplate:()=>Vg,renderTemplate:()=>Hg});var Ec=class r extends Ku{static lc_name(){return"PipelinePromptTemplate"}constructor(e){super({...e,inputVariables:[]}),Object.defineProperty(this,"pipelinePrompts",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"finalPrompt",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.pipelinePrompts=e.pipelinePrompts,this.finalPrompt=e.finalPrompt,this.inputVariables=this.computeInputValues()}computeInputValues(){let e=this.pipelinePrompts.map(n=>n.name),t=this.pipelinePrompts.map(n=>n.prompt.inputVariables.filter(s=>!e.includes(s))).flat();return[...new Set(t)]}static extractRequiredInputValues(e,t){return t.reduce((n,s)=>(n[s]=e[s],n),{})}async formatPipelinePrompts(e){let t=await this.mergePartialAndUserVariables(e);for(let{name:n,prompt:s}of this.pipelinePrompts){let i=r.extractRequiredInputValues(t,s.inputVariables);s instanceof Qr?t[n]=await s.formatMessages(i):t[n]=await s.format(i)}return r.extractRequiredInputValues(t,this.finalPrompt.inputVariables)}async formatPromptValue(e){return this.finalPrompt.formatPromptValue(await this.formatPipelinePrompts(e))}async format(e){return this.finalPrompt.format(await this.formatPipelinePrompts(e))}async partial(e){let t={...this};return t.inputVariables=this.inputVariables.filter(n=>!(n in e)),t.partialVariables={...this.partialVariables??{},...e},new r(t)}serialize(){throw new Error("Not implemented.")}_getPromptType(){return"pipeline"}};function wh(r){return typeof r=="object"&&r!=null&&"withStructuredOutput"in r&&typeof r.withStructuredOutput=="function"}function Db(r){return typeof r=="object"&&r!=null&&"lc_id"in r&&Array.isArray(r.lc_id)&&r.lc_id.join("/")==="langchain_core/runnables/RunnableBinding"}var Ic=class r extends Qr{get lc_aliases(){return{...super.lc_aliases,schema:"schema_"}}constructor(e){super(e),Object.defineProperty(this,"schema",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"method",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","prompts","structured"]}),this.schema=e.schema,this.method=e.method}pipe(e){if(wh(e))return super.pipe(e.withStructuredOutput(this.schema));if(Db(e)&&wh(e.bound))return super.pipe(new Ar({bound:e.bound.withStructuredOutput(this.schema,...this.method?[{method:this.method}]:[]),kwargs:e.kwargs??{},config:e.config,configFactories:e.configFactories}));throw new Error('Structured prompts need to be piped to a language model that supports the "withStructuredOutput()" method.')}static fromMessagesAndSchema(e,t,n){return r.fromMessages(e,{schema:t,method:n})}};var Sc={};ne(Sc,{BaseRetriever:()=>on});var on=class extends Z{constructor(e){super(e),Object.defineProperty(this,"callbacks",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"verbose",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.callbacks=e?.callbacks,this.tags=e?.tags??[],this.metadata=e?.metadata??{},this.verbose=e?.verbose??!1}_getRelevantDocuments(e,t){throw new Error("Not implemented!")}async invoke(e,t){return this.getRelevantDocuments(e,ut(t))}async getRelevantDocuments(e,t){let n=ut(Bn(t)),i=await(await at.configure(n.callbacks,this.callbacks,n.tags,this.tags,n.metadata,this.metadata,{verbose:this.verbose}))?.handleRetrieverStart(this.toJSON(),e,n.runId,void 0,void 0,void 0,n.runName);try{let o=await this._getRelevantDocuments(e,i);return await i?.handleRetrieverEnd(o),o}catch(o){throw await i?.handleRetrieverError(o),o}}};var Tc={};ne(Tc,{BaseStore:()=>qo,InMemoryStore:()=>Cc});var qo=class extends or{},Cc=class extends qo{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","storage"]}),Object.defineProperty(this,"store",{enumerable:!0,configurable:!0,writable:!0,value:{}})}async mget(e){return e.map(t=>this.store[t])}async mset(e){for(let[t,n]of e)this.store[t]=n}async mdelete(e){for(let t of e)delete this.store[t]}async*yieldKeys(e){let t=Object.keys(this.store);for(let n of t)(e===void 0||n.startsWith(e))&&(yield n)}};var Nc={};ne(Nc,{BaseToolkit:()=>Rc,DynamicStructuredTool:()=>Jo,DynamicTool:()=>wi,StructuredTool:()=>an,Tool:()=>es,ToolInputParsingException:()=>yo,isLangChainTool:()=>kr,isRunnableToolLike:()=>yi,isStructuredTool:()=>bi,isStructuredToolParams:()=>_i,tool:()=>$b});function bi(r){return r!==void 0&&Array.isArray(r.lc_namespace)}function yi(r){return r!==void 0&&Z.isRunnable(r)&&"lc_name"in r.constructor&&typeof r.constructor.lc_name=="function"&&r.constructor.lc_name()==="RunnableToolLike"}function _i(r){return!!r&&typeof r=="object"&&"name"in r&&"schema"in r&&(Ze(r.schema)||r.schema!=null&&typeof r.schema=="object"&&"type"in r.schema&&typeof r.schema.type=="string"&&["null","boolean","object","array","number","string"].includes(r.schema.type))}function kr(r){return _i(r)||yi(r)||bi(r)}var an=class extends Yn{get lc_namespace(){return["langchain","tools"]}constructor(e){super(e??{}),Object.defineProperty(this,"returnDirect",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"verboseParsingErrors",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"responseFormat",{enumerable:!0,configurable:!0,writable:!0,value:"content"}),Object.defineProperty(this,"defaultConfig",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.verboseParsingErrors=e?.verboseParsingErrors??this.verboseParsingErrors,this.responseFormat=e?.responseFormat??this.responseFormat,this.defaultConfig=e?.defaultConfig??this.defaultConfig,this.metadata=e?.metadata??this.metadata}async invoke(e,t){let n,s=ut(ze(this.defaultConfig,t));return bo(e)?(n=e.args,s={...s,toolCall:e}):n=e,this.call(n,s)}async call(e,t,n){let s=bo(e)?e.args:e,i;if(Ze(this.schema))try{i=await ui(this.schema,s)}catch(g){let b="Received tool input did not match expected schema";throw this.verboseParsingErrors&&(b=`${b}
77
+ Details: ${g.message}`),new yo(b,JSON.stringify(e))}else{let g=Uf(s,this.schema);if(!g.valid){let b="Received tool input did not match expected schema";throw this.verboseParsingErrors&&(b=`${b}
80
78
  Details: ${g.errors.map(_=>`${_.keywordLocation}: ${_.error}`).join(`
81
- `)}`),new bo(b,JSON.stringify(e))}i=s}let o=zn(t),u=await at.configure(o.callbacks,this.callbacks,o.tags||n,this.tags,o.metadata,this.metadata,{verbose:this.verbose})?.handleToolStart(this.toJSON(),typeof e=="string"?e:JSON.stringify(e),o.runId,void 0,void 0,void 0,o.runName);delete o.runId;let c;try{c=await this._call(i,u,o)}catch(g){throw await u?.handleToolError(g),g}let l,p;if(this.responseFormat==="content_and_artifact")if(Array.isArray(c)&&c.length===2)[l,p]=c;else throw new Error(`Tool response format is "content_and_artifact" but the output was not a two-tuple.
82
- Result: ${JSON.stringify(c)}`);else l=c;let h;go(e)&&(h=e.id),!h&&af(o)&&(h=o.toolCall.id);let f=Rb({content:l,artifact:p,toolCallId:h,name:this.name,metadata:this.metadata});return await u?.handleToolEnd(f),f}},Qn=class extends sn{constructor(e){super(e),Object.defineProperty(this,"schema",{enumerable:!0,configurable:!0,writable:!0,value:oe.object({input:oe.string().optional()}).transform(t=>t.input)})}call(e,t){let n=typeof e=="string"||e==null?{input:e}:e;return super.call(n,t)}},wi=class extends Qn{static lc_name(){return"DynamicTool"}constructor(e){super(e),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"description",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"func",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=e.name,this.description=e.description,this.func=e.func,this.returnDirect=e.returnDirect??this.returnDirect}async call(e,t){let n=zn(t);return n.runName===void 0&&(n.runName=this.name),super.call(e,n)}async _call(e,t,n){return this.func(e,t,n)}},qo=class extends sn{static lc_name(){return"DynamicStructuredTool"}constructor(e){super(e),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"description",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"func",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"schema",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=e.name,this.description=e.description,this.func=e.func,this.returnDirect=e.returnDirect??this.returnDirect,this.schema=e.schema}async call(e,t,n){let s=zn(t);return s.runName===void 0&&(s.runName=this.name),super.call(e,s,n)}_call(e,t,n){return this.func(e,t,n)}},kc=class{getTools(){return this.tools}};function Tb(r,e){let t=ju(e.schema),n=$f(e.schema);if(!e.schema||t||n)return new wi({...e,description:e.description??(e.schema&&$t(e.schema))??`${e.name} tool`,func:async(o,a,u)=>new Promise((c,l)=>{let p=he(u,{callbacks:a?.getChild()});Ye.runWithConfig(Kn(p),async()=>{try{c(r(o,p))}catch(h){l(h)}})})});let s=e.schema,i=e.description??e.schema.description??`${e.name} tool`;return new qo({...e,description:i,schema:s,func:async(o,a,u)=>new Promise((c,l)=>{let p=he(u,{callbacks:a?.getChild()});Ye.runWithConfig(Kn(p),async()=>{try{c(r(o,p))}catch(h){l(h)}})})})}function Rb(r){let{content:e,artifact:t,toolCallId:n,metadata:s}=r;return n&&!pf(e)?typeof e=="string"||Array.isArray(e)&&e.every(i=>typeof i=="object")?new Iu({status:"success",content:e,artifact:t,tool_call_id:n,name:r.name,metadata:s}):new Iu({status:"success",content:Nb(e),artifact:t,tool_call_id:n,name:r.name,metadata:s}):e}function Nb(r){try{return JSON.stringify(r,null,2)??""}catch{return`${r}`}}var Tc={};re(Tc,{getTracingCallbackHandler:()=>jb,getTracingV2CallbackHandler:()=>Mb});var Cc={};re(Cc,{LangChainTracerV1:()=>xi});var xi=class extends Jr{constructor(){super(),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"langchain_tracer"}),Object.defineProperty(this,"endpoint",{enumerable:!0,configurable:!0,writable:!0,value:pe("LANGCHAIN_ENDPOINT")||"http://localhost:1984"}),Object.defineProperty(this,"headers",{enumerable:!0,configurable:!0,writable:!0,value:{"Content-Type":"application/json"}}),Object.defineProperty(this,"session",{enumerable:!0,configurable:!0,writable:!0,value:void 0});let e=pe("LANGCHAIN_API_KEY");e&&(this.headers["x-api-key"]=e)}async newSession(e){let t={start_time:Date.now(),name:e},n=await this.persistSession(t);return this.session=n,n}async loadSession(e){let t=`${this.endpoint}/sessions?name=${e}`;return this._handleSessionResponse(t)}async loadDefaultSession(){let e=`${this.endpoint}/sessions?name=default`;return this._handleSessionResponse(e)}async convertV2RunToRun(e){let t=this.session??await this.loadDefaultSession(),n=e.serialized,s;if(e.run_type==="llm"){let i=e.inputs.prompts?e.inputs.prompts:e.inputs.messages.map(a=>xo(a));s={uuid:e.id,start_time:e.start_time,end_time:e.end_time,execution_order:e.execution_order,child_execution_order:e.child_execution_order,serialized:n,type:e.run_type,session_id:t.id,prompts:i,response:e.outputs}}else if(e.run_type==="chain"){let i=await Promise.all(e.child_runs.map(a=>this.convertV2RunToRun(a)));s={uuid:e.id,start_time:e.start_time,end_time:e.end_time,execution_order:e.execution_order,child_execution_order:e.child_execution_order,serialized:n,type:e.run_type,session_id:t.id,inputs:e.inputs,outputs:e.outputs,child_llm_runs:i.filter(a=>a.type==="llm"),child_chain_runs:i.filter(a=>a.type==="chain"),child_tool_runs:i.filter(a=>a.type==="tool")}}else if(e.run_type==="tool"){let i=await Promise.all(e.child_runs.map(a=>this.convertV2RunToRun(a)));s={uuid:e.id,start_time:e.start_time,end_time:e.end_time,execution_order:e.execution_order,child_execution_order:e.child_execution_order,serialized:n,type:e.run_type,session_id:t.id,tool_input:e.inputs.input,output:e.outputs?.output,action:JSON.stringify(n),child_llm_runs:i.filter(a=>a.type==="llm"),child_chain_runs:i.filter(a=>a.type==="chain"),child_tool_runs:i.filter(a=>a.type==="tool")}}else throw new Error(`Unknown run type: ${e.run_type}`);return s}async persistRun(e){let t,n;e.run_type!==void 0?n=await this.convertV2RunToRun(e):n=e,n.type==="llm"?t=`${this.endpoint}/llm-runs`:n.type==="chain"?t=`${this.endpoint}/chain-runs`:t=`${this.endpoint}/tool-runs`;let s=await fetch(t,{method:"POST",headers:this.headers,body:JSON.stringify(n)});s.ok||console.error(`Failed to persist run: ${s.status} ${s.statusText}`)}async persistSession(e){let t=`${this.endpoint}/sessions`,n=await fetch(t,{method:"POST",headers:this.headers,body:JSON.stringify(e)});return n.ok?{id:(await n.json()).id,...e}:(console.error(`Failed to persist session: ${n.status} ${n.statusText}, using default session.`),{id:1,...e})}async _handleSessionResponse(e){let t=await fetch(e,{method:"GET",headers:this.headers}),n;if(!t.ok)return console.error(`Failed to load session: ${t.status} ${t.statusText}`),n={id:1,start_time:Date.now()},this.session=n,n;let s=await t.json();return s.length===0?(n={id:1,start_time:Date.now()},this.session=n,n):([n]=s,this.session=n,n)}};async function jb(r){let e=new xi;return r?await e.loadSession(r):await e.loadDefaultSession(),e}async function Mb(){return new Of}var Nc={};re(Nc,{RunCollectorCallbackHandler:()=>Rc});var Rc=class extends Jr{constructor({exampleId:e}={}){super({_awaitHandler:!0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"run_collector"}),Object.defineProperty(this,"exampleId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tracedRuns",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.exampleId=e,this.tracedRuns=[]}async persistRun(e){let t={...e};t.reference_example_id=this.exampleId,this.tracedRuns.push(t)}};var Mc={};re(Mc,{chunkArray:()=>jc});var jc=(r,e)=>r.reduce((t,n,s)=>{let i=Math.floor(s/e),o=t[i]||[];return t[i]=o.concat([n]),t},[]);var $c={};re($c,{convertToOpenAIFunction:()=>Dc,convertToOpenAITool:()=>Jo,isLangChainTool:()=>Er,isRunnableToolLike:()=>yi,isStructuredTool:()=>bi,isStructuredToolParams:()=>_i});function Dc(r,e){let t=typeof e=="number"?void 0:e;return{name:r.name,description:r.description,parameters:Ae(r.schema),...t?.strict!==void 0?{strict:t.strict}:{}}}function Jo(r,e){let t=typeof e=="number"?void 0:e,n;return Er(r)?n={type:"function",function:Dc(r)}:n=r,t?.strict!==void 0&&(n.function.strict=t.strict),n}var Fc={};re(Fc,{cosineSimilarity:()=>Lc,euclideanDistance:()=>Fb,innerProduct:()=>Lb,matrixFunc:()=>Yo,maximalMarginalRelevance:()=>Ub,normalize:()=>$b});function Xo(r,e){let t=0,n=0,s=0;for(let i=0;i<r.length;i++)t+=r[i]*e[i],n+=r[i]*r[i],s+=e[i]*e[i];return t/(Math.sqrt(n)*Math.sqrt(s))}function bh(r,e){let t=0;for(let n=0;n<r.length;n++)t+=r[n]*e[n];return t}function Db(r,e){let t=0;for(let n=0;n<r.length;n++)t+=(r[n]-e[n])*(r[n]-e[n]);return t}function yh(r,e){return Math.sqrt(Db(r,e))}function Yo(r,e,t){if(r.length===0||r[0].length===0||e.length===0||e[0].length===0)return[[]];if(r[0].length!==e[0].length)throw new Error(`Number of columns in X and Y must be the same. X has shape ${[r.length,r[0].length]} and Y has shape ${[e.length,e[0].length]}.`);return r.map(n=>e.map(s=>t(n,s)).map(s=>Number.isNaN(s)?0:s))}function $b(r,e=!1){let t=zb(r);return r.map(n=>n.map(s=>e?1-s/t:s/t))}function Lc(r,e){return Yo(r,e,Xo)}function Lb(r,e){return Yo(r,e,bh)}function Fb(r,e){return Yo(r,e,yh)}function Ub(r,e,t=.5,n=4){if(Math.min(n,e.length)<=0)return[];let s=Array.isArray(r[0])?r:[r],i=Lc(s,e)[0],o=_h(i).maxIndex,a=[e[o]],u=[o];for(;u.length<Math.min(n,e.length);){let c=-1/0,l=-1,p=Lc(e,a);i.forEach((h,f)=>{if(u.includes(f))return;let g=Math.max(...p[f]),b=t*h-(1-t)*g;b>c&&(c=b,l=f)}),a.push(e[l]),u.push(l)}return u}function _h(r){if(r.length===0)return{maxIndex:-1,maxValue:NaN};let e=r[0],t=0;for(let n=1;n<r.length;n+=1)r[n]>e&&(t=n,e=r[n]);return{maxIndex:t,maxValue:e}}function zb(r){return r.reduce((e,t)=>Math.max(e,_h(t).maxValue),0)}var sl={};re(sl,{FakeChatMessageHistory:()=>Xc,FakeChatModel:()=>Vc,FakeEmbeddings:()=>el,FakeLLM:()=>Wc,FakeListChatMessageHistory:()=>Yc,FakeListChatModel:()=>Jc,FakeRetriever:()=>qc,FakeRunnable:()=>Kc,FakeSplitIntoListParser:()=>Bc,FakeStreamingChatModel:()=>Gc,FakeStreamingLLM:()=>Hc,FakeTool:()=>Qc,FakeTracer:()=>Zc,FakeVectorStore:()=>nl,SingleRunExtractor:()=>rl,SyntheticEmbeddings:()=>tl});var zc={};re(zc,{SaveableVectorStore:()=>Uc,VectorStore:()=>ts,VectorStoreRetriever:()=>es});var es=class extends nn{static lc_name(){return"VectorStoreRetriever"}get lc_namespace(){return["langchain_core","vectorstores"]}_vectorstoreType(){return this.vectorStore._vectorstoreType()}constructor(e){super(e),Object.defineProperty(this,"vectorStore",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"k",{enumerable:!0,configurable:!0,writable:!0,value:4}),Object.defineProperty(this,"searchType",{enumerable:!0,configurable:!0,writable:!0,value:"similarity"}),Object.defineProperty(this,"searchKwargs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"filter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.vectorStore=e.vectorStore,this.k=e.k??this.k,this.searchType=e.searchType??this.searchType,this.filter=e.filter,e.searchType==="mmr"&&(this.searchKwargs=e.searchKwargs)}async _getRelevantDocuments(e,t){if(this.searchType==="mmr"){if(typeof this.vectorStore.maxMarginalRelevanceSearch!="function")throw new Error(`The vector store backing this retriever, ${this._vectorstoreType()} does not support max marginal relevance search.`);return this.vectorStore.maxMarginalRelevanceSearch(e,{k:this.k,filter:this.filter,...this.searchKwargs},t?.getChild("vectorstore"))}return this.vectorStore.similaritySearch(e,this.k,this.filter,t?.getChild("vectorstore"))}async addDocuments(e,t){return this.vectorStore.addDocuments(e,t)}},ts=class extends ir{constructor(e,t){super(t),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","vectorstores",this._vectorstoreType()]}),Object.defineProperty(this,"embeddings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.embeddings=e}async delete(e){throw new Error("Not implemented.")}async similaritySearch(e,t=4,n=void 0,s=void 0){return(await this.similaritySearchVectorWithScore(await this.embeddings.embedQuery(e),t,n)).map(o=>o[0])}async similaritySearchWithScore(e,t=4,n=void 0,s=void 0){return this.similaritySearchVectorWithScore(await this.embeddings.embedQuery(e),t,n)}static fromTexts(e,t,n,s){throw new Error("the Langchain vectorstore implementation you are using forgot to override this, please report a bug")}static fromDocuments(e,t,n){throw new Error("the Langchain vectorstore implementation you are using forgot to override this, please report a bug")}asRetriever(e,t,n,s,i,o){if(typeof e=="number")return new es({vectorStore:this,k:e,filter:t,tags:[...s??[],this._vectorstoreType()],metadata:i,verbose:o,callbacks:n});{let a={vectorStore:this,k:e?.k,filter:e?.filter,tags:[...e?.tags??[],this._vectorstoreType()],metadata:e?.metadata,verbose:e?.verbose,callbacks:e?.callbacks,searchType:e?.searchType};return e?.searchType==="mmr"?new es({...a,searchKwargs:e.searchKwargs}):new es({...a})}}},Uc=class extends ts{static load(e,t){throw new Error("Not implemented")}};var Bc=class extends Bt{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["tests","fake"]})}getFormatInstructions(){return""}async parse(e){return e.split(",").map(t=>t.trim())}},Kc=class extends Z{constructor(e){super(e),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["tests","fake"]}),Object.defineProperty(this,"returnOptions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.returnOptions=e.returnOptions}async invoke(e,t){return this.returnOptions?t??{}:{input:e}}},Wc=class extends Yn{constructor(e){super(e),Object.defineProperty(this,"response",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"thrownErrorString",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.response=e.response,this.thrownErrorString=e.thrownErrorString}_llmType(){return"fake"}async _call(e,t,n){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let s=this.response??e;return await n?.handleLLMNewToken(s),s}},Hc=class extends Yn{constructor(e){super(e),Object.defineProperty(this,"sleep",{enumerable:!0,configurable:!0,writable:!0,value:50}),Object.defineProperty(this,"responses",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"thrownErrorString",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.sleep=e.sleep??this.sleep,this.responses=e.responses,this.thrownErrorString=e.thrownErrorString}_llmType(){return"fake"}async _call(e){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let t=this.responses?.[0];return this.responses=this.responses?.slice(1),t??e}async*_streamResponseChunks(e,t,n){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let s=this.responses?.[0];this.responses=this.responses?.slice(1);for(let i of s??e)await new Promise(o=>setTimeout(o,this.sleep)),yield{text:i,generationInfo:{}},await n?.handleLLMNewToken(i)}},Vc=class extends zt{_combineLLMOutput(){return[]}_llmType(){return"fake"}async _generate(e,t,n){if(t?.stop?.length)return{generations:[{message:new ue(t.stop[0]),text:t.stop[0]}]};let s=e.map(i=>typeof i.content=="string"?i.content:JSON.stringify(i.content,null,2)).join(`
83
- `);return await n?.handleLLMNewToken(s),{generations:[{message:new ue(s),text:s}],llmOutput:{}}}},Gc=class r extends zt{constructor({sleep:e=50,responses:t=[],chunks:n=[],toolStyle:s="openai",thrownErrorString:i,...o}){super(o),Object.defineProperty(this,"sleep",{enumerable:!0,configurable:!0,writable:!0,value:50}),Object.defineProperty(this,"responses",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"chunks",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"toolStyle",{enumerable:!0,configurable:!0,writable:!0,value:"openai"}),Object.defineProperty(this,"thrownErrorString",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tools",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.sleep=e,this.responses=t,this.chunks=n,this.toolStyle=s,this.thrownErrorString=i}_llmType(){return"fake"}bindTools(e){let t=[...this.tools,...e],n=t.map(o=>{switch(this.toolStyle){case"openai":return{type:"function",function:{name:o.name,description:o.description,parameters:Ae(o.schema)}};case"anthropic":return{name:o.name,description:o.description,input_schema:Ae(o.schema)};case"bedrock":return{toolSpec:{name:o.name,description:o.description,inputSchema:Ae(o.schema)}};case"google":return{name:o.name,description:o.description,parameters:Ae(o.schema)};default:throw new Error(`Unsupported tool style: ${this.toolStyle}`)}}),s=this.toolStyle==="google"?[{functionDeclarations:n}]:n,i=new r({sleep:this.sleep,responses:this.responses,chunks:this.chunks,toolStyle:this.toolStyle,thrownErrorString:this.thrownErrorString});return i.tools=t,i.withConfig({tools:s})}async _generate(e,t,n){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let s=this.responses?.[0]?.content??e[0].content??"";return{generations:[{text:"",message:new ue({content:s,tool_calls:this.chunks?.[0]?.tool_calls})}]}}async*_streamResponseChunks(e,t,n){if(this.thrownErrorString)throw new Error(this.thrownErrorString);if(this.chunks?.length){for(let o of this.chunks){let a=new ht({message:new Mt({content:o.content,tool_calls:o.tool_calls,additional_kwargs:o.additional_kwargs??{}}),text:o.content?.toString()??""});yield a,await n?.handleLLMNewToken(o.content,void 0,void 0,void 0,void 0,{chunk:a})}return}let s=this.responses?.[0]??new ue(typeof e[0].content=="string"?e[0].content:""),i=typeof s.content=="string"?s.content:"";for(let o of i){await new Promise(u=>setTimeout(u,this.sleep));let a=new ht({message:new Mt({content:o}),text:o});yield a,await n?.handleLLMNewToken(o,void 0,void 0,void 0,void 0,{chunk:a})}}},qc=class extends nn{constructor(e){super(),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["test","fake"]}),Object.defineProperty(this,"output",{enumerable:!0,configurable:!0,writable:!0,value:[new yt({pageContent:"foo"}),new yt({pageContent:"bar"})]}),this.output=e?.output??this.output}async _getRelevantDocuments(e){return this.output}},Jc=class extends zt{static lc_name(){return"FakeListChatModel"}constructor(e){super(e),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"responses",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"i",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"sleep",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"emitCustomEvent",{enumerable:!0,configurable:!0,writable:!0,value:!1});let{responses:t,sleep:n,emitCustomEvent:s}=e;this.responses=t,this.sleep=n,this.emitCustomEvent=s??this.emitCustomEvent}_combineLLMOutput(){return[]}_llmType(){return"fake-list"}async _generate(e,t,n){if(await this._sleepIfRequested(),t?.thrownErrorString)throw new Error(t.thrownErrorString);if(this.emitCustomEvent&&await n?.handleCustomEvent("some_test_event",{someval:!0}),t?.stop?.length)return{generations:[this._formatGeneration(t.stop[0])]};{let s=this._currentResponse();return this._incrementResponse(),{generations:[this._formatGeneration(s)],llmOutput:{}}}}_formatGeneration(e){return{message:new ue(e),text:e}}async*_streamResponseChunks(e,t,n){let s=this._currentResponse();this._incrementResponse(),this.emitCustomEvent&&await n?.handleCustomEvent("some_test_event",{someval:!0});for await(let i of s){if(await this._sleepIfRequested(),t?.thrownErrorString)throw new Error(t.thrownErrorString);yield this._createResponseChunk(i),n?.handleLLMNewToken(i)}}async _sleepIfRequested(){this.sleep!==void 0&&await this._sleep()}async _sleep(){return new Promise(e=>{setTimeout(()=>e(),this.sleep)})}_createResponseChunk(e){return new ht({message:new Mt({content:e}),text:e})}_currentResponse(){return this.responses[this.i]}_incrementResponse(){this.i<this.responses.length-1?this.i+=1:this.i=0}withStructuredOutput(e,t){return Ft.from(async n=>{let s=await this.invoke(n);if(s.tool_calls?.[0]?.args)return s.tool_calls[0].args;if(typeof s.content=="string")return JSON.parse(s.content);throw new Error("No structured output found")})}},Xc=class extends mi{constructor(){super(),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","message","fake"]}),Object.defineProperty(this,"messages",{enumerable:!0,configurable:!0,writable:!0,value:[]})}async getMessages(){return this.messages}async addMessage(e){this.messages.push(e)}async addUserMessage(e){this.messages.push(new ot(e))}async addAIChatMessage(e){this.messages.push(new ue(e))}async clear(){this.messages=[]}},Yc=class extends Jn{constructor(){super(),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","message","fake"]}),Object.defineProperty(this,"messages",{enumerable:!0,configurable:!0,writable:!0,value:[]})}async addMessage(e){this.messages.push(e)}async getMessages(){return this.messages}},Zc=class extends Jr{constructor(){super(),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"fake_tracer"}),Object.defineProperty(this,"runs",{enumerable:!0,configurable:!0,writable:!0,value:[]})}persistRun(e){return this.runs.push(e),Promise.resolve()}},Qc=class extends sn{constructor(e){super(e),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"description",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"schema",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=e.name,this.description=e.description,this.schema=e.schema}async _call(e,t){return JSON.stringify(e)}},el=class extends Yr{constructor(e){super(e??{})}embedDocuments(e){return Promise.resolve(e.map(()=>[.1,.2,.3,.4]))}embedQuery(e){return Promise.resolve([.1,.2,.3,.4])}},tl=class extends Yr{constructor(e){super(e??{}),Object.defineProperty(this,"vectorSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.vectorSize=e?.vectorSize??4}async embedDocuments(e){return Promise.all(e.map(t=>this.embedQuery(t)))}async embedQuery(e){let t=e;t=t.toLowerCase().replaceAll(/[^a-z ]/g,"");let n=t.length%this.vectorSize,s=n===0?0:this.vectorSize-n,i=t.length+s;t=t.padEnd(i," ");let o=t.length/this.vectorSize,a=[];for(let c=0;c<t.length;c+=o)a.push(t.slice(c,c+o));return a.map(c=>{let l=0;for(let h=0;h<c.length;h+=1)l+=c===" "?0:c.charCodeAt(h);return l%26/26})}},rl=class extends Jr{constructor(){super(),Object.defineProperty(this,"runPromiseResolver",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"runPromise",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"single_run_extractor"}),this.runPromise=new Promise(e=>{this.runPromiseResolver=e})}async persistRun(e){this.runPromiseResolver(e)}async extract(){return this.runPromise}},nl=class r extends ts{_vectorstoreType(){return"memory"}constructor(e,{similarity:t,...n}={}){super(e,n),Object.defineProperty(this,"memoryVectors",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"similarity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.similarity=t??Xo}async addDocuments(e){let t=e.map(({pageContent:n})=>n);return this.addVectors(await this.embeddings.embedDocuments(t),e)}async addVectors(e,t){let n=e.map((s,i)=>({content:t[i].pageContent,embedding:s,metadata:t[i].metadata}));this.memoryVectors=this.memoryVectors.concat(n)}async similaritySearchVectorWithScore(e,t,n){let s=u=>{if(!n)return!0;let c=new yt({metadata:u.metadata,pageContent:u.content});return n(c)},i=this.memoryVectors.filter(s);return i.map((u,c)=>({similarity:this.similarity(e,u.embedding),index:c})).sort((u,c)=>u.similarity>c.similarity?-1:0).slice(0,t).map(u=>[new yt({metadata:i[u.index].metadata,pageContent:i[u.index].content}),u.similarity])}static async fromTexts(e,t,n,s){let i=[];for(let o=0;o<e.length;o+=1){let a=Array.isArray(t)?t[o]:t,u=new yt({pageContent:e[o],metadata:a});i.push(u)}return r.fromDocuments(i,n,s)}static async fromDocuments(e,t,n){let s=new this(t,n);return await s.addDocuments(e),s}static async fromExistingIndex(e,t){return new this(e,t)}};var il={};re(il,{extendInteropZodObject:()=>Mu,getInteropZodDefaultGetter:()=>Du,getInteropZodObjectShape:()=>Ao,getSchemaDescription:()=>$t,interopParse:()=>ci,interopParseAsync:()=>ui,interopSafeParse:()=>Og,interopSafeParseAsync:()=>Nu,interopZodObjectPartial:()=>li,interopZodObjectPassthrough:()=>Cg,interopZodObjectStrict:()=>Sg,interopZodTransformInputSchema:()=>Tg,isInteropZodObject:()=>Lt,isInteropZodSchema:()=>Ze,isShapelessZodSchema:()=>Pg,isSimpleStringZodSchema:()=>ju,isZodArrayV4:()=>kg,isZodObjectV3:()=>Eg,isZodObjectV4:()=>Ig,isZodSchema:()=>Ag,isZodSchemaV3:()=>ai,isZodSchemaV4:()=>Ru});var Bb=50;function Kb(r){let e={};for(let t=r;t&&t.prototype;t=Object.getPrototypeOf(t))Object.assign(e,Reflect.get(t.prototype,"lc_aliases"));return Object.entries(e).reduce((t,[n,s])=>(t[s]=n,t),{})}async function Zo(r){let{optionalImportsMap:e,optionalImportEntrypoints:t,importMap:n,secretsMap:s,secretsFromEnv:i,path:o,depth:a,maxDepth:u}=this,c=o.join(".");if(a>u)throw new Error(`Maximum recursion depth (${u}) exceeded during deserialization. This may indicate a malicious payload or you may need to increase maxDepth.`);if(typeof r!="object"||r==null)return r;if(Array.isArray(r))return Promise.all(r.map((h,f)=>Zo.call({...this,path:[...o,`${f}`],depth:a+1},h)));let l=r;if(tf(l))return rf(l);if("lc"in l&&"type"in l&&"id"in l&&l.lc===1&&l.type==="secret"){let h=l,[f]=h.id;if(f in s)return s[f];if(i){let g=pe(f);if(g)return g}throw new Error(`Missing secret "${f}" at ${c}`)}if("lc"in l&&"type"in l&&"id"in l&&l.lc===1&&l.type==="not_implemented"){let f=JSON.stringify(l);throw new Error(`Trying to load an object that doesn't implement serialization: ${c} -> ${f}`)}if("lc"in l&&"type"in l&&"id"in l&&"kwargs"in l&&l.lc===1&&l.type==="constructor"){let h=l,f=JSON.stringify(h),[g,...b]=h.id.slice().reverse(),_=b.reverse(),I={langchain_core:ol,langchain:n},v=null,S=[_.join("/")];_[0]==="langchain_community"&&S.push(["langchain",..._.slice(1)].join("/"));let C=S.find(y=>y in e);if(eh.concat(t).includes(_.join("/"))||C)if(C!==void 0)v=await e[C];else throw new Error(`Missing key "${_.join("/")}" for ${c} in load(optionalImportsMap={})`);else{let y;if(_[0]==="langchain"||_[0]==="langchain_core")y=I[_[0]],_.shift();else throw new Error(`Invalid namespace: ${c} -> ${f}`);if(_.length===0)throw new Error(`Invalid namespace: ${c} -> ${f}`);let T;do{if(T=_.join("__"),T in y)break;_.pop()}while(_.length>0);T in y&&(v=y[T])}if(typeof v!="object"||v===null)throw new Error(`Invalid namespace: ${c} -> ${f}`);let j=v[g]??Object.values(v).find(y=>typeof y=="function"&&nf(y)===g);if(typeof j!="function")throw new Error(`Invalid identifer: ${c} -> ${f}`);let F=await Zo.call({...this,path:[...o,"kwargs"],depth:a+1},h.kwargs),D=new j(ef(F,Qp,Kb(j)));return Object.defineProperty(D.constructor,"name",{value:g}),D}let p={};for(let[h,f]of Object.entries(l))p[h]=await Zo.call({...this,path:[...o,h],depth:a+1},f);return p}async function wh(r,e){let t=JSON.parse(r),n={optionalImportsMap:e?.optionalImportsMap??{},optionalImportEntrypoints:e?.optionalImportEntrypoints??[],secretsMap:e?.secretsMap??{},secretsFromEnv:e?.secretsFromEnv??!1,importMap:e?.importMap??{},path:["$"],depth:0,maxDepth:e?.maxDepth??Bb};return Zo.call(n,t)}var xh="[...]",Wb="[Circular]",Qo=[],rs=[];function Hb(){return{depthLimit:Number.MAX_SAFE_INTEGER,edgesLimit:Number.MAX_SAFE_INTEGER}}function vh(r,e,t,n){typeof n>"u"&&(n=Hb()),ul(r,"",0,[],void 0,0,n);var s;try{rs.length===0?s=JSON.stringify(r,e,t):s=JSON.stringify(r,Vb(e),t)}catch{return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{for(;Qo.length!==0;){var i=Qo.pop();i.length===4?Object.defineProperty(i[0],i[1],i[3]):i[0][i[1]]=i[2]}}return s}function al(r,e,t,n){var s=Object.getOwnPropertyDescriptor(n,t);s.get!==void 0?s.configurable?(Object.defineProperty(n,t,{value:r}),Qo.push([n,t,e,s])):rs.push([e,t,r]):(n[t]=r,Qo.push([n,t,e]))}function ul(r,e,t,n,s,i,o){i+=1;var a;if(typeof r=="object"&&r!==null){for(a=0;a<n.length;a++)if(n[a]===r){al(Wb,r,e,s);return}if(typeof o.depthLimit<"u"&&i>o.depthLimit){al(xh,r,e,s);return}if(typeof o.edgesLimit<"u"&&t+1>o.edgesLimit){al(xh,r,e,s);return}if(n.push(r),Array.isArray(r))for(a=0;a<r.length;a++)ul(r[a],a,a,n,r,i,o);else{var u=Object.keys(r);for(a=0;a<u.length;a++){var c=u[a];ul(r[c],c,a,n,r,i,o)}}n.pop()}}function Vb(r){return r=typeof r<"u"?r:function(e,t){return t},function(e,t){if(rs.length>0)for(var n=0;n<rs.length;n++){var s=rs[n];if(s[1]===e&&s[0]===t){t=s[2],rs.splice(n,1);break}}return r.call(this,e,t)}}function Gb(r){return r!==null&&r.lc===1&&r.type==="constructor"&&Array.isArray(r.id)}async function ll(r){if(r&&typeof r=="object"){if(Array.isArray(r))return await Promise.all(r.map(t=>ll(t)));{let e={};for(let[t,n]of Object.entries(r))e[t]=await ll(n);if(e.lc===2&&e.type==="undefined")return;if(e.lc===2&&e.type==="constructor"&&Array.isArray(e.id))try{let t=e.id[e.id.length-1],n;switch(t){case"Set":n=Set;break;case"Map":n=Map;break;case"RegExp":n=RegExp;break;case"Error":n=Error;break;default:return e}return e.method?n[e.method](...e.args||[]):new n(...e.args||[])}catch{return e}else if(Gb(e))return wh(JSON.stringify(e));return e}}return r}function cl(r,e,t,n){return{lc:2,type:"constructor",id:[r.name],method:e??null,args:t??[],kwargs:n??{}}}function qb(r){return r===void 0?{lc:2,type:"undefined"}:r instanceof Set||r instanceof Map?cl(r.constructor,void 0,[Array.from(r)]):r instanceof RegExp?cl(RegExp,void 0,[r.source,r.flags]):r instanceof Error?cl(r.constructor,void 0,[r.message]):r?.lg_name==="Send"?{node:r.node,args:r.args}:r}var ns=class{_dumps(e){return new TextEncoder().encode(vh(e,(n,s)=>qb(s)))}async dumpsTyped(e){return e instanceof Uint8Array?["bytes",e]:["json",this._dumps(e)]}async _loads(e){let t=JSON.parse(e);return ll(t)}async loadsTyped(e,t){if(e==="bytes")return typeof t=="string"?new TextEncoder().encode(t):t;if(e==="json")return this._loads(typeof t=="string"?t:new TextDecoder().decode(t));throw new Error(`Unknown serialization type: ${e}`)}};function Ah(r){if(typeof r!="object"||r===null)return r;let e=Array.isArray(r)?[]:{};for(let t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=Ah(r[t]));return e}function Ai(){return{v:4,id:So(-2),ts:new Date().toISOString(),channel_values:{},channel_versions:{},versions_seen:{}}}function Wt(r){return{v:r.v,id:r.id,ts:r.ts,channel_values:{...r.channel_values},channel_versions:{...r.channel_versions},versions_seen:Ah(r.versions_seen)}}var vi=class{constructor(e){Object.defineProperty(this,"serde",{enumerable:!0,configurable:!0,writable:!0,value:new ns}),this.serde=e||this.serde}async get(e){let t=await this.getTuple(e);return t?t.checkpoint:void 0}getNextVersion(e){if(typeof e=="string")throw new Error("Please override this method to use string versions.");return e!==void 0&&typeof e=="number"?e+1:1}};function pl(r,e){return typeof r=="number"&&typeof e=="number"?Math.sign(r-e):String(r).localeCompare(String(e))}function ea(...r){return r.reduce((e,t,n)=>n===0?t:pl(e,t)>=0?e:t)}var ta={[Yf]:-1,[qn]:-2,[Zf]:-3,[Qf]:-4};function Oh(r){return r.configurable?.checkpoint_id||r.configurable?.thread_ts||""}function Oi(r,e,t){return JSON.stringify([r,e,t])}function Jb(r){let[e,t,n]=JSON.parse(r);return{threadId:e,checkpointNamespace:t,checkpointId:n}}var ss=class extends vi{constructor(e){super(e),Object.defineProperty(this,"storage",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"writes",{enumerable:!0,configurable:!0,writable:!0,value:{}})}async _migratePendingSends(e,t,n,s){let i=e,o=Oi(t,n,s),a=await Promise.all(Object.values(this.writes[o]??{}).filter(([u,c])=>c===Co).map(async([u,c,l])=>await this.serde.loadsTyped("json",l)));i.channel_values??={},i.channel_values[Co]=a,i.channel_versions??={},i.channel_versions[Co]=Object.keys(i.channel_versions).length>0?ea(...Object.values(i.channel_versions)):this.getNextVersion(void 0)}async getTuple(e){let t=e.configurable?.thread_id,n=e.configurable?.checkpoint_ns??"",s=Oh(e);if(s){let i=this.storage[t]?.[n]?.[s];if(i!==void 0){let[o,a,u]=i,c=Oi(t,n,s),l=await this.serde.loadsTyped("json",o);l.v<4&&u!==void 0&&await this._migratePendingSends(l,t,n,u);let p=await Promise.all(Object.values(this.writes[c]||{}).map(async([f,g,b])=>[f,g,await this.serde.loadsTyped("json",b)])),h={config:e,checkpoint:l,metadata:await this.serde.loadsTyped("json",a),pendingWrites:p};return u!==void 0&&(h.parentConfig={configurable:{thread_id:t,checkpoint_ns:n,checkpoint_id:u}}),h}}else{let i=this.storage[t]?.[n];if(i!==void 0){s=Object.keys(i).sort((g,b)=>b.localeCompare(g))[0];let o=i[s],[a,u,c]=o,l=Oi(t,n,s),p=await this.serde.loadsTyped("json",a);p.v<4&&c!==void 0&&await this._migratePendingSends(p,t,n,c);let h=await Promise.all(Object.values(this.writes[l]||{}).map(async([g,b,_])=>[g,b,await this.serde.loadsTyped("json",_)])),f={config:{configurable:{thread_id:t,checkpoint_id:s,checkpoint_ns:n}},checkpoint:p,metadata:await this.serde.loadsTyped("json",u),pendingWrites:h};return c!==void 0&&(f.parentConfig={configurable:{thread_id:t,checkpoint_ns:n,checkpoint_id:c}}),f}}}async*list(e,t){let{before:n,limit:s,filter:i}=t??{},o=e.configurable?.thread_id?[e.configurable?.thread_id]:Object.keys(this.storage),a=e.configurable?.checkpoint_ns,u=e.configurable?.checkpoint_id;for(let c of o)for(let l of Object.keys(this.storage[c]??{})){if(a!==void 0&&l!==a)continue;let p=this.storage[c]?.[l]??{},h=Object.entries(p).sort((f,g)=>g[0].localeCompare(f[0]));for(let[f,[g,b,_]]of h){if(u&&f!==u||n&&n.configurable?.checkpoint_id&&f>=n.configurable.checkpoint_id)continue;let I=await this.serde.loadsTyped("json",b);if(i&&!Object.entries(i).every(([D,y])=>I[D]===y))continue;if(s!==void 0){if(s<=0)break;s-=1}let v=Oi(c,l,f),S=Object.values(this.writes[v]||{}),C=await Promise.all(S.map(async([D,y,T])=>[D,y,await this.serde.loadsTyped("json",T)])),j=await this.serde.loadsTyped("json",g);j.v<4&&_!==void 0&&await this._migratePendingSends(j,c,l,_);let F={config:{configurable:{thread_id:c,checkpoint_ns:l,checkpoint_id:f}},checkpoint:j,metadata:I,pendingWrites:C};_!==void 0&&(F.parentConfig={configurable:{thread_id:c,checkpoint_ns:l,checkpoint_id:_}}),yield F}}}async put(e,t,n){let s=Wt(t),i=e.configurable?.thread_id,o=e.configurable?.checkpoint_ns??"";if(i===void 0)throw new Error('Failed to put checkpoint. The passed RunnableConfig is missing a required "thread_id" field in its "configurable" property.');this.storage[i]||(this.storage[i]={}),this.storage[i][o]||(this.storage[i][o]={});let[[,a],[,u]]=await Promise.all([this.serde.dumpsTyped(s),this.serde.dumpsTyped(n)]);return this.storage[i][o][t.id]=[a,u,e.configurable?.checkpoint_id],{configurable:{thread_id:i,checkpoint_ns:o,checkpoint_id:t.id}}}async putWrites(e,t,n){let s=e.configurable?.thread_id,i=e.configurable?.checkpoint_ns,o=e.configurable?.checkpoint_id;if(s===void 0)throw new Error('Failed to put writes. The passed RunnableConfig is missing a required "thread_id" field in its "configurable" property');if(o===void 0)throw new Error('Failed to put writes. The passed RunnableConfig is missing a required "checkpoint_id" field in its "configurable" property.');let a=Oi(s,i,o),u=this.writes[a];this.writes[a]===void 0&&(this.writes[a]={}),await Promise.all(t.map(async([c,l],p)=>{let[,h]=await this.serde.dumpsTyped(l),f=[n,ta[c]||p],g=`${f[0]},${f[1]}`;f[1]>=0&&u&&g in u||(this.writes[a][g]=[n,c,h])}))}async deleteThread(e){delete this.storage[e];for(let t of Object.keys(this.writes))Jb(t).threadId===e&&delete this.writes[t]}};var on=class extends Error{constructor(e){super(e),this.name="InvalidNamespaceError"}};function Xb(r){if(r.length===0)throw new on("Namespace cannot be empty.");for(let e of r){if(typeof e!="string")throw new on(`Invalid namespace label '${e}' found in ${r}. Namespace labels must be strings, but got ${typeof e}.`);if(e.includes("."))throw new on(`Invalid namespace label '${e}' found in ${r}. Namespace labels cannot contain periods ('.').`);if(e==="")throw new on(`Namespace labels cannot be empty strings. Got ${e} in ${r}`)}if(r[0]==="langgraph")throw new on(`Root label for namespace cannot be "langgraph". Got: ${r}`)}var is=class{async get(e,t){return(await this.batch([{namespace:e,key:t}]))[0]}async search(e,t={}){let{filter:n,limit:s=10,offset:i=0,query:o}=t;return(await this.batch([{namespacePrefix:e,filter:n,limit:s,offset:i,query:o}]))[0]}async put(e,t,n,s){Xb(e),await this.batch([{namespace:e,key:t,value:n,index:s}])}async delete(e,t){await this.batch([{namespace:e,key:t,value:null}])}async listNamespaces(e={}){let{prefix:t,suffix:n,maxDepth:s,limit:i=100,offset:o=0}=e,a=[];return t&&a.push({matchType:"prefix",path:t}),n&&a.push({matchType:"suffix",path:n}),(await this.batch([{matchConditions:a.length?a:void 0,maxDepth:s,limit:i,offset:o}]))[0]}start(){}stop(){}};var Yb=r=>"lg_name"in r&&r.lg_name==="AsyncBatchedStore"?r.store:r,Pi=class extends is{constructor(e){super(),Object.defineProperty(this,"lg_name",{enumerable:!0,configurable:!0,writable:!0,value:"AsyncBatchedStore"}),Object.defineProperty(this,"store",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"queue",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"nextKey",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"running",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"processingTask",{enumerable:!0,configurable:!0,writable:!0,value:null}),this.store=Yb(e)}get isRunning(){return this.running}async batch(e){throw new Error("The `batch` method is not implemented on `AsyncBatchedStore`.\n Instead, it calls the `batch` method on the wrapped store.\n If you are seeing this error, something is wrong.")}async get(e,t){return this.enqueueOperation({namespace:e,key:t})}async search(e,t){let{filter:n,limit:s=10,offset:i=0,query:o}=t||{};return this.enqueueOperation({namespacePrefix:e,filter:n,limit:s,offset:i,query:o})}async put(e,t,n){return this.enqueueOperation({namespace:e,key:t,value:n})}async delete(e,t){return this.enqueueOperation({namespace:e,key:t,value:null})}start(){this.running||(this.running=!0,this.processingTask=this.processBatchQueue())}async stop(){this.running=!1,this.processingTask&&await this.processingTask}enqueueOperation(e){return new Promise((t,n)=>{let s=this.nextKey;this.nextKey+=1,this.queue.set(s,{operation:e,resolve:t,reject:n})})}async processBatchQueue(){for(;this.running;){if(await new Promise(t=>{setTimeout(t,0)}),this.queue.size===0)continue;let e=new Map(this.queue);this.queue.clear();try{let t=Array.from(e.values()).map(({operation:s})=>s),n=await this.store.batch(t);e.forEach(({resolve:s},i)=>{let o=Array.from(e.keys()).indexOf(i);s(n[o])})}catch(t){e.forEach(({reject:n})=>{n(t)})}}}toJSON(){return{queue:this.queue,nextKey:this.nextKey,running:this.running,store:"[LangGraphStore]"}}};var Ei=class{constructor(e){Object.defineProperty(this,"serde",{enumerable:!0,configurable:!0,writable:!0,value:new ns}),this.serde=e||this.serde}};function hl(r){return r!=null&&r.lg_is_channel===!0}var je=class{constructor(){Object.defineProperty(this,"ValueType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"UpdateType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"lg_is_channel",{enumerable:!0,configurable:!0,writable:!0,value:!0})}consume(){return!1}finish(){return!1}isAvailable(){try{return this.get(),!0}catch(e){if(e.name===ne.unminifiable_name)return!1;throw e}}},fl=Symbol.for("LG_IS_ONLY_BASE_CHANNEL");function Ii(r){if(r[fl]===!0)return r;let e={};for(let t in r){if(!Object.prototype.hasOwnProperty.call(r,t))continue;let n=r[t];hl(n)&&(e[t]=n)}return Object.assign(e,{[fl]:!0}),e}function Ir(r,e){let t=Ii(r),n={};for(let s in t){if(!Object.prototype.hasOwnProperty.call(t,s))continue;let i=e.channel_values[s];n[s]=t[s].fromCheckpoint(i)}return Object.assign(n,{[fl]:!0}),n}function _t(r,e,t,n){let s;if(e===void 0)s=r.channel_values;else{s={};for(let o in e)if(Object.prototype.hasOwnProperty.call(e,o))try{s[o]=e[o].checkpoint()}catch(a){if(a.name!==ne.unminifiable_name)throw a}}let i={};for(let o in r.versions_seen)Object.prototype.hasOwnProperty.call(r.versions_seen,o)&&(i[o]={...r.versions_seen[o]});return{v:4,id:n?.id??So(t),ts:new Date().toISOString(),channel_values:s,channel_versions:{...r.channel_versions},versions_seen:i}}var cr=class r extends je{constructor(e,t){super(),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"BinaryOperatorAggregate"}),Object.defineProperty(this,"value",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"operator",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"initialValueFactory",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.operator=e,this.initialValueFactory=t,this.value=t?.()}fromCheckpoint(e){let t=new r(this.operator,this.initialValueFactory);return typeof e<"u"&&(t.value=e),t}update(e){let t=e;if(!t.length)return!1;this.value===void 0&&([this.value]=t,t=t.slice(1));for(let n of t)this.value!==void 0&&(this.value=this.operator(this.value,n));return!0}get(){if(this.value===void 0)throw new ne;return this.value}checkpoint(){if(this.value===void 0)throw new ne;return this.value}isAvailable(){return this.value!==void 0}};var Ht=class r extends je{constructor(){super(...arguments),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"LastValue"}),Object.defineProperty(this,"value",{enumerable:!0,configurable:!0,writable:!0,value:[]})}fromCheckpoint(e){let t=new r;return typeof e<"u"&&(t.value=[e]),t}update(e){if(e.length===0)return!1;if(e.length!==1)throw new X("LastValue can only receive one value per step.",{lc_error_code:"INVALID_CONCURRENT_GRAPH_UPDATE"});return this.value=[e[e.length-1]],!0}get(){if(this.value.length===0)throw new ne;return this.value[0]}checkpoint(){if(this.value.length===0)throw new ne;return this.value[0]}isAvailable(){return this.value.length!==0}},ra=class r extends je{constructor(){super(...arguments),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"LastValueAfterFinish"}),Object.defineProperty(this,"value",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"finished",{enumerable:!0,configurable:!0,writable:!0,value:!1})}fromCheckpoint(e){let t=new r;if(typeof e<"u"){let[n,s]=e;t.value=[n],t.finished=s}return t}update(e){return e.length===0?!1:(this.finished=!1,this.value=[e[e.length-1]],!0)}get(){if(this.value.length===0||!this.finished)throw new ne;return this.value[0]}checkpoint(){if(this.value.length!==0)return[this.value[0],this.finished]}consume(){return this.finished?(this.finished=!1,this.value=[],!0):!1}finish(){return!this.finished&&this.value.length>0?(this.finished=!0,!0):!1}isAvailable(){return this.value.length!==0&&this.finished}};var na=class{constructor(e){Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"AnnotationRoot"}),Object.defineProperty(this,"spec",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.spec=e}},lt=function(r){return r?sa(r):new Ht};lt.Root=r=>new na(r);function sa(r){return typeof r=="object"&&r&&"reducer"in r&&r.reducer?new cr(r.reducer,r.default):typeof r=="object"&&r&&"value"in r&&r.value?new cr(r.value,r.default):new Ht}var pt=oe;var Ph,q="__start__",K="__end__",wt="__input__",Eh="__copy__",ge="__error__",ia="__pregel_ns_writes",lr="__pregel_send",Si="__pregel_call",xt="__pregel_read",de="__pregel_checkpointer",Vt="__pregel_resuming",an="__pregel_task_id",os="__pregel_stream",Zb="__pregel_resume_value",as="__pregel_resume_map",vt="__pregel_scratchpad",us="__pregel_previous",ml="__pregel_durability",oa="checkpoint_id",At="checkpoint_ns",Ih="__pregel_node_finished",Be="checkpoint_map",gl="__pregel_abort_signals",V="__interrupt__",Me="__resume__",Ci="__no_writes__",Ot="__return__",un="__previous__";var ee="langsmith:hidden",kh="langsmith:nostream",bl="__self__",De="__pregel_tasks",$e="__pregel_push",Ti="__pregel_pull";var Le="00000000-0000-0000-0000-000000000000",Sh=[ee,wt,V,Me,ge,Ci,lr,xt,de,ml,os,Vt,an,Si,Zb,vt,us,Be,At,oa],ce="|",Ke=":",Qb=Symbol.for("langgraph.command"),dl=class{constructor(){Object.defineProperty(this,Ph,{enumerable:!0,configurable:!0,writable:!0,value:void 0})}};Ph=Qb;function aa(r){let e=r;return e!=null&&typeof e.node=="string"&&e.args!==void 0}var kr=class{constructor(e,t){Object.defineProperty(this,"lg_name",{enumerable:!0,configurable:!0,writable:!0,value:"Send"}),Object.defineProperty(this,"node",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"args",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.node=e,this.args=ki(t)}toJSON(){return{lg_name:this.lg_name,node:this.node,args:this.args}}};function Ee(r){return r instanceof kr}function yl(r){return!r||typeof r!="object"||!(V in r)?!1:Array.isArray(r[V])}var Ce=class extends dl{constructor(e){super(),Object.defineProperty(this,"lg_name",{enumerable:!0,configurable:!0,writable:!0,value:"Command"}),Object.defineProperty(this,"lc_direct_tool_output",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"graph",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"update",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"resume",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"goto",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.resume=e.resume,this.graph=e.graph,this.update=e.update,e.goto&&(this.goto=Array.isArray(e.goto)?ki(e.goto):[ki(e.goto)])}_updateAsTuples(){return this.update&&typeof this.update=="object"&&!Array.isArray(this.update)?Object.entries(this.update):Array.isArray(this.update)&&this.update.every(e=>Array.isArray(e)&&e.length===2&&typeof e[0]=="string")?this.update:[["__root__",this.update]]}toJSON(){let e;return typeof this.goto=="string"?e=this.goto:Ee(this.goto)?e=this.goto.toJSON():e=this.goto?.map(t=>typeof t=="string"?t:t.toJSON()),{lg_name:this.lg_name,update:this.update,resume:this.resume,goto:e}}};Object.defineProperty(Ce,"PARENT",{enumerable:!0,configurable:!0,writable:!0,value:"__parent__"});function Te(r){return typeof r!="object"||r==null?!1:"lg_name"in r&&r.lg_name==="Command"}function ki(r,e=new Map){if(r!=null&&typeof r=="object"){if(e.has(r))return e.get(r);let t;if(Array.isArray(r))t=[],e.set(r,t),r.forEach((n,s)=>{t[s]=ki(n,e)});else if(Te(r)&&!(r instanceof Ce))t=new Ce(r),e.set(r,t);else if(aa(r)&&!(r instanceof kr))t=new kr(r.node,r.args),e.set(r,t);else if(Te(r)||Ee(r))t=r,e.set(r,t);else if("lc_serializable"in r&&r.lc_serializable)t=r,e.set(r,t);else{t={},e.set(r,t);for(let[n,s]of Object.entries(r))t[n]=ki(s,e)}return t}return r}var ey=["tags","metadata","callbacks","configurable"],ty=["tags","metadata","callbacks","runName","maxConcurrency","recursionLimit","configurable","runId","outputKeys","streamMode","store","writer","context","interruptBefore","interruptAfter","checkpointDuring","durability","signal"],ry=25;function ua(...r){let e={tags:[],metadata:{},callbacks:void 0,recursionLimit:ry,configurable:{}},t=Ye.getRunnableConfig();if(t!==void 0){for(let[n,s]of Object.entries(t))if(s!==void 0)if(ey.includes(n)){let i;Array.isArray(s)?i=[...s]:typeof s=="object"?n==="callbacks"&&"copy"in s&&typeof s.copy=="function"?i=s.copy():i={...s}:i=s,e[n]=i}else e[n]=s}for(let n of r)if(n!==void 0)for(let[s,i]of Object.entries(n))i!==void 0&&ty.includes(s)&&(e[s]=i);for(let[n,s]of Object.entries(e.configurable))e.metadata=e.metadata??{},!n.startsWith("__")&&(typeof s=="string"||typeof s=="number"||typeof s=="boolean")&&!(n in e.metadata)&&(e.metadata[n]=s);return e}function Ch(){return Ye.getRunnableConfig()}function ca(r){return r.split(ce).filter(e=>!e.match(/^\d+$/)).map(e=>e.split(Ke)[0]).join(ce)}function Th(r){let e=r.split(ce);for(;e.length>1&&e[e.length-1].match(/^\d+$/);)e.pop();return e.slice(0,-1).join(ce)}var Ie=class extends Z{constructor(e){super(),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langgraph"]}),Object.defineProperty(this,"func",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"config",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"trace",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"recurse",{enumerable:!0,configurable:!0,writable:!0,value:!0}),this.name=e.name??e.func.name,this.func=e.func,this.config=e.tags?{tags:e.tags}:void 0,this.trace=e.trace??this.trace,this.recurse=e.recurse??this.recurse}async _tracedInvoke(e,t,n){return new Promise((s,i)=>{let o=he(t,{callbacks:n?.getChild()});Ye.runWithConfig(o,async()=>{try{let a=await this.func(e,o);s(a)}catch(a){i(a)}})})}async invoke(e,t){let n,s=ua(t),i=ze(this.config,s);return this.trace?n=await this._callWithConfig(this._tracedInvoke,e,i):n=await Ye.runWithConfig(i,async()=>this.func(e,i)),Z.isRunnable(n)&&this.recurse?await Ye.runWithConfig(i,async()=>n.invoke(e,i)):n}};function*pr(r,e){if(e===void 0)yield*r;else for(let t of r)yield[e,t]}async function Pt(r){let e=[];for await(let t of await r)e.push(t);return e}function cn(r){let e=[];for(let t of r)e.push(t);return e}function ln(r,e){return r?"configurable"in r?{...r,configurable:{...r.configurable,...e}}:{...r,configurable:e}:{configurable:e}}function Rh(r){return r!=null&&typeof r=="function"&&r instanceof Object.getPrototypeOf(async function*(){}).constructor}function Nh(r){return r!=null&&typeof r=="function"&&r instanceof Object.getPrototypeOf(function*(){}).constructor}var sP={[Symbol.for("LG_SKIP_WRITE")]:!0};function ny(r){return typeof r=="object"&&r?.[Symbol.for("LG_SKIP_WRITE")]!==void 0}var Je={[Symbol.for("LG_PASSTHROUGH")]:!0};function la(r){return typeof r=="object"&&r?.[Symbol.for("LG_PASSTHROUGH")]!==void 0}var _l=Symbol("IS_WRITER"),ae=class r extends Ie{constructor(e,t){let n=`ChannelWrite<${e.map(s=>Ee(s)?s.node:"channel"in s?s.channel:"...").join(",")}>`;super({writes:e,name:n,tags:t,func:async(s,i)=>this._write(s,i??{})}),Object.defineProperty(this,"writes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.writes=e}async _write(e,t){let n=this.writes.map(s=>wl(s)&&la(s.value)?{mapper:s.mapper,value:e}:pa(s)&&la(s.value)?{channel:s.channel,value:e,skipNone:s.skipNone,mapper:s.mapper}:s);return await r.doWrite(t,n),e}static async doWrite(e,t){for(let i of t){if(pa(i)){if(i.channel===De)throw new X("Cannot write to the reserved channel TASKS");if(la(i.value))throw new X("PASSTHROUGH value must be replaced")}if(wl(i)&&la(i.value))throw new X("PASSTHROUGH value must be replaced")}let n=[];for(let i of t)if(Ee(i))n.push([De,i]);else if(wl(i)){let o=await i.mapper.invoke(i.value,e);o!=null&&o.length>0&&n.push(...o)}else if(pa(i)){let o=i.mapper!==void 0?await i.mapper.invoke(i.value,e):i.value;if(ny(o)||i.skipNone&&o===void 0)continue;n.push([i.channel,o])}else throw new Error(`Invalid write entry: ${JSON.stringify(i)}`);let s=e.configurable?.[lr];s(n)}static isWriter(e){return e instanceof r||_l in e&&!!e[_l]}static registerWriter(e){return Object.defineProperty(e,_l,{value:!0})}};function pa(r){return r!==void 0&&typeof r.channel=="string"}function wl(r){return r!==void 0&&!pa(r)&&Z.isRunnable(r.mapper)}var fa=class r extends Ie{constructor(e,t,n=!1){super({func:(s,i)=>r.doRead(i,this.channel,this.fresh,this.mapper)}),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"ChannelRead"}),Object.defineProperty(this,"channel",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"fresh",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"mapper",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.fresh=n,this.mapper=t,this.channel=e,this.name=Array.isArray(e)?`ChannelRead<${e.join(",")}>`:`ChannelRead<${e}>`}static doRead(e,t,n,s){let i=e.configurable?.[xt];if(!i)throw new Error("Runnable is not configured with a read function. Make sure to call in the context of a Pregel process");return s?s(i(t,n)):i(t,n)}},cs=new Ge,et=class r extends vr{constructor(e){let{channels:t,triggers:n,mapper:s,writers:i,bound:o,kwargs:a,metadata:u,retryPolicy:c,cachePolicy:l,tags:p,subgraphs:h,ends:f}=e,g=[...e.config?.tags?e.config.tags:[],...p??[]];super({...e,bound:e.bound??cs,config:{...e.config?e.config:{},tags:g}}),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"PregelNode"}),Object.defineProperty(this,"channels",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"triggers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"mapper",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"writers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"bound",{enumerable:!0,configurable:!0,writable:!0,value:cs}),Object.defineProperty(this,"kwargs",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"metadata",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"retryPolicy",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cachePolicy",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"subgraphs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"ends",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.channels=t,this.triggers=n,this.mapper=s,this.writers=i??this.writers,this.bound=o??this.bound,this.kwargs=a??this.kwargs,this.metadata=u??this.metadata,this.tags=g,this.retryPolicy=c,this.cachePolicy=l,this.subgraphs=h,this.ends=f}getWriters(){let e=[...this.writers];for(;e.length>1&&e[e.length-1]instanceof ae&&e[e.length-2]instanceof ae;){let t=e.slice(-2),n=t[0].writes.concat(t[1].writes);e[e.length-2]=new ae(n,t[0].config?.tags),e.pop()}return e}getNode(){let e=this.getWriters();if(!(this.bound===cs&&e.length===0))return this.bound===cs&&e.length===1?e[0]:this.bound===cs?new Qe({first:e[0],middle:e.slice(1,e.length-1),last:e[e.length-1],omitSequenceTags:!0}):e.length>0?new Qe({first:this.bound,middle:e.slice(0,e.length-1),last:e[e.length-1],omitSequenceTags:!0}):this.bound}join(e){if(!Array.isArray(e))throw new Error("channels must be a list");if(typeof this.channels!="object")throw new Error("all channels must be named when using .join()");return new r({channels:{...this.channels,...Object.fromEntries(e.map(t=>[t,t]))},triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:this.bound,kwargs:this.kwargs,config:this.config,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy})}pipe(e){return ae.isWriter(e)?new r({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:[...this.writers,e],bound:this.bound,config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy}):this.bound===cs?new r({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:Ne(e),config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy}):new r({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:this.bound.pipe(e),config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy})}};var k=r=>BigInt(r),se=(r,e=0)=>new DataView(r.buffer,r.byteOffset+e,r.byteLength-e),$h=k("0x9E3779B1"),Lh=k("0x85EBCA77"),sy=k("0xC2B2AE3D"),Sr=k("0x9E3779B185EBCA87"),pn=k("0xC2B2AE3D27D4EB4F"),Fh=k("0x165667B19E3779F9"),Al=k("0x85EBCA77C2B2AE63"),iy=k("0x27D4EB2F165667C5"),oy=k("0x165667919E3779F9"),ay=k("0x9FB21C651E98DF25"),uy=r=>{let e=r.length;if(e%2!==0)throw new Error("String should have an even number of characters");let t=e/2,n=new Uint8Array(t),s=0,i=0;for(;i<t;){let o=r.slice(s,s+=2);n[i]=Number.parseInt(o,16),i+=1}return se(n)},Gt=uy("b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e"),ls=(k(1)<<k(128))-k(1),G=(k(1)<<k(64))-k(1),ga=(k(1)<<k(32))-k(1),fr=64,Uh=fr/8,cy=8,ha=4;function ps(r){if(!r)throw new Error("Assert failed")}function ly(r){let e=new DataView(new ArrayBuffer(8));return e.setBigUint64(0,r,!0),e.getBigUint64(0,!1)}function py(r){let e=r;return e=(e&k(65535))<<k(16)|(e&k(4294901760))>>k(16),e=(e&k(16711935))<<k(8)|(e&k(4278255360))>>k(8),e}function fy(r,e){return(r&ga)*(e&ga)&G}function hy(r,e){return(r<<e|r>>k(32)-e)&ga}function zh(r,e,t){for(let n=0;n<Uh;n+=1){let s=e.getBigUint64(n*8,!0),i=s^t.getBigUint64(n*8,!0);r[n^1]+=s,r[n]+=fy(i,i>>k(32))}return r}function jh(r,e,t,n){for(let s=0;s<n;s+=1)zh(r,se(e,s*fr),se(t,s*8));return r}function dy(r,e){for(let t=0;t<Uh;t+=1){let n=e.getBigUint64(t*8,!0),s=r[t];s=xl(s,k(47)),s^=n,s*=$h,r[t]=s&G}return r}function da(r,e){return Bh(r[0]^e.getBigUint64(0,!0),r[1]^e.getBigUint64(cy,!0))}function Mh(r,e,t){let n=t;return n+=da(r.slice(0),se(e,0*ha)),n+=da(r.slice(2),se(e,4*ha)),n+=da(r.slice(4),se(e,8*ha)),n+=da(r.slice(6),se(e,12*ha)),qt(n&G)}function my(r,e,t,n,s){let i=r,o=Math.floor((t.byteLength-fr)/8),a=fr*o,u=Math.floor((e.byteLength-1)/a);for(let c=0;c<u;c+=1)i=jh(i,se(e,c*a),t,o),i=s(i,se(t,t.byteLength-fr));{let c=Math.floor((e.byteLength-1-a*u)/fr);i=jh(i,se(e,u*a),t,c),i=n(i,se(e,e.byteLength-fr),se(t,t.byteLength-fr-7))}return i}function gy(r,e){let t=new BigUint64Array([sy,Sr,pn,Fh,Al,Lh,iy,$h]);ps(r.byteLength>128),t=my(t,r,e,zh,dy),ps(t.length*8===64);{let n=Mh(t,se(e,11),k(r.byteLength)*Sr&G);return Mh(t,se(e,e.byteLength-fr-11),~(k(r.byteLength)*pn)&G)<<k(64)|n}}function Bh(r,e){let t=r*e&ls;return t&G^t>>k(64)}function Dh(r,e,t){return Bh((r.getBigUint64(0,!0)^e.getBigUint64(0,!0)+t)&G,(r.getBigUint64(8,!0)^e.getBigUint64(8,!0)-t)&G)}function ma(r,e,t,n,s){let i=r&G,o=r>>k(64)&G;return i+=Dh(e,n,s),i^=t.getBigUint64(0,!0)+t.getBigUint64(8,!0),i&=G,o+=Dh(t,se(n,16),s),o^=e.getBigUint64(0,!0)+e.getBigUint64(8,!0),o&=G,o<<k(64)|i}function qt(r){let e=r;return e^=e>>k(37),e*=oy,e&=G,e^=e>>k(32),e}function ba(r){let e=r;return e^=e>>k(33),e*=pn,e&=G,e^=e>>k(29),e*=Fh,e&=G,e^=e>>k(32),e}function by(r,e,t){let n=r.byteLength;ps(n>0&&n<=3);let s=k(r.getUint8(n-1))|k(n<<8)|k(r.getUint8(0)<<16)|k(r.getUint8(n>>1)<<24),i=(k(e.getUint32(0,!0))^k(e.getUint32(4,!0)))+t,o=(s^i)&G,a=(k(e.getUint32(8,!0))^k(e.getUint32(12,!0)))-t,u=(hy(py(s),k(13))^a)&G;return(ba(u)&G)<<k(64)|ba(o)}function xl(r,e){return r^r>>e}function yy(r,e,t){let n=r.byteLength;ps(n>=4&&n<=8);{let s=r.getUint32(0,!0),i=r.getUint32(n-4,!0),o=k(s)|k(i)<<k(32),a=(e.getBigUint64(16,!0)^e.getBigUint64(24,!0))+t&G,c=(o^a)*(Sr+(k(n)<<k(2)))&ls;return c+=(c&G)<<k(65),c&=ls,c^=c>>k(67),xl(xl(c&G,k(35))*ay&G,k(28))|qt(c>>k(64))<<k(64)}}function _y(r,e,t){let n=r.byteLength;ps(n>=9&&n<=16);{let s=(e.getBigUint64(32,!0)^e.getBigUint64(40,!0))+t&G,i=(e.getBigUint64(48,!0)^e.getBigUint64(56,!0))-t&G,o=r.getBigUint64(0,!0),a=r.getBigUint64(n-8,!0),u=(o^a^s)*Sr,c=(u&G)+(k(n-1)<<k(54));u=u&(ls^G)|c,a^=i,u+=a+(a&ga)*(Lh-k(1))<<k(64),u&=ls,u^=ly(u>>k(64));let l=(u&G)*pn;return l+=(u>>k(64))*pn<<k(64),l&=ls,qt(l&G)|qt(l>>k(64))<<k(64)}}function wy(r,e){let t=r.byteLength;return ps(t<=16),t>8?_y(r,Gt,e):t>=4?yy(r,Gt,e):t>0?by(r,Gt,e):ba(e^Gt.getBigUint64(64,!0)^Gt.getBigUint64(72,!0))|ba(e^Gt.getBigUint64(80,!0)^Gt.getBigUint64(88,!0))<<k(64)}function vl(r){return~r+k(1)&G}function xy(r,e,t){let n=k(r.byteLength)*Sr&G,s=k(r.byteLength-1)/k(32);for(;s>=0;){let a=Number(s);n=ma(n,se(r,16*a),se(r,r.byteLength-16*(a+1)),se(e,32*a),t),s-=k(1)}let i=n+(n>>k(64))&G;i=qt(i);let o=(n&G)*Sr+(n>>k(64))*Al+(k(r.byteLength)-t&G)*pn;return o&=G,o=vl(qt(o)),i|o<<k(64)}function vy(r,e,t){let n=k(r.byteLength)*Sr&G;for(let o=32;o<160;o+=32)n=ma(n,se(r,o-32),se(r,o-16),se(e,o-32),t);n=qt(n&G)|qt(n>>k(64))<<k(64);for(let o=160;o<=r.byteLength;o+=32)n=ma(n,se(r,o-32),se(r,o-16),se(e,3+o-160),t);n=ma(n,se(r,r.byteLength-16),se(r,r.byteLength-32),se(e,103),vl(t));let s=n+(n>>k(64))&G;s=qt(s);let i=(n&G)*Sr+(n>>k(64))*Al+(k(r.byteLength)-t&G)*pn;return i&=G,i=vl(qt(i)),s|i<<k(64)}function fn(r,e=k(0)){let t=new TextEncoder,n=se(typeof r=="string"?t.encode(r):r),s=n.byteLength,i=o=>o.toString(16).padStart(32,"0");return s<=16?i(wy(n,e)):s<=128?i(xy(n,Gt,e)):s<=240?i(vy(n,Gt,e)):i(gy(n,Gt))}function ya(r){return/^[0-9a-f]{32}$/.test(r)}function hn(r,e,t=!0,n=!1){try{return r[e].get()}catch(s){if(s.name===ne.unminifiable_name){if(n)return s;if(t)return null}throw s}}function Et(r,e,t=!0){if(Array.isArray(e)){let n={};for(let s of e)try{n[s]=hn(r,s,!t)}catch(i){if(i.name===ne.unminifiable_name)continue}return n}else return hn(r,e)}function*Kh(r,e){if(r.graph===Ce.PARENT)throw new X("There is no parent graph.");if(r.goto){let t;Array.isArray(r.goto)?t=r.goto:t=[r.goto];for(let n of t)if(Ee(n))yield[Le,De,n];else if(typeof n=="string")yield[Le,`branch:to:${n}`,"__start__"];else throw new Error(`In Command.send, expected Send or string, got ${typeof n}`)}if(r.resume)if(typeof r.resume=="object"&&Object.keys(r.resume).length&&Object.keys(r.resume).every(ya))for(let[t,n]of Object.entries(r.resume)){let s=e.filter(i=>i[0]===t&&i[1]===Me).map(i=>i[2]).slice(0,1)??[];s.push(n),yield[t,Me,s]}else yield[Le,Me,r.resume];if(r.update){if(typeof r.update!="object"||!r.update)throw new Error("Expected cmd.update to be a dict mapping channel names to update values");if(Array.isArray(r.update))for(let[t,n]of r.update)yield[Le,t,n];else for(let[t,n]of Object.entries(r.update))yield[Le,t,n]}}function*_a(r,e){if(e!=null)if(Array.isArray(r)&&typeof e=="object"&&!Array.isArray(e))for(let t in e)r.includes(t)&&(yield[t,e[t]]);else{if(Array.isArray(r))throw new Error('Input chunk must be an object when "inputChannels" is an array');yield[r,e]}}function*wa(r,e,t){Array.isArray(r)?(e===!0||e.find(([n,s])=>r.includes(n)))&&(yield Et(t,r)):(e===!0||e.some(([n,s])=>n===r))&&(yield hn(t,r))}function*Wh(r,e,t){let n=e.filter(([a,u])=>(a.config===void 0||!a.config.tags?.includes(ee))&&u[0][0]!==ge&&u[0][0]!==V);if(!n.length)return;let s;n.some(([a])=>a.writes.some(([u,c])=>u===Ot))?s=n.flatMap(([a])=>a.writes.filter(([u,c])=>u===Ot).map(([u,c])=>[a.name,c])):Array.isArray(r)?s=n.flatMap(([a])=>{let{writes:u}=a,c={};for(let[l]of u)r.includes(l)&&(c[l]=(c[l]||0)+1);return Object.values(c).some(l=>l>1)?u.filter(([l])=>r.includes(l)).map(([l,p])=>[a.name,{[l]:p}]):[[a.name,Object.fromEntries(u.filter(([l])=>r.includes(l)))]]}):s=n.flatMap(([a])=>a.writes.filter(([u,c])=>u===r).map(([u,c])=>[a.name,c]));let i={};for(let[a,u]of s)a in i||(i[a]=[]),i[a].push(u);let o={};for(let a in i)if(i[a].length===1){let[u]=i[a];o[a]=u}else o[a]=i[a];t&&(o.__metadata__={cached:t}),yield o}var xa=class{constructor({func:e,name:t,input:n,retry:s,cache:i,callbacks:o}){Object.defineProperty(this,"func",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"input",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"retry",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"callbacks",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"__lg_type",{enumerable:!0,configurable:!0,writable:!0,value:"call"}),this.func=e,this.name=t,this.input=n,this.retry=s,this.cache=i,this.callbacks=o}};function Hh(r){return typeof r=="object"&&r!==null&&"__lg_type"in r&&r.__lg_type==="call"}function va(r){let e=typeof r[q];if(e==="number")return 0;if(e==="string")return"";for(let t in r){if(!Object.prototype.hasOwnProperty.call(r,t))continue;let n=typeof r[t];if(n==="number")return 0;if(n==="string")return"";break}}function fs(r,e){if(Object.keys(r).length>0){let t=va(e);return Object.fromEntries(Object.entries(e).filter(([n,s])=>s>(r[n]??t)))}else return e}function Vh(r,e){return r&&!Array.isArray(r)&&!(r instanceof Date)&&typeof r=="object"?r:{[e]:r}}function Xe(r,e){return r===null?{configurable:e}:r?.configurable===void 0?{...r,configurable:e}:{...r,configurable:{...r.configurable,...e}}}function Cr(r,e){let t=e?.parents??{};return Object.keys(t).length>0?Xe(r,{[Be]:{...t,[r.configurable?.checkpoint_ns??""]:r.configurable?.checkpoint_id}}):r}function hs(...r){let e=[...new Set(r.filter(Boolean))];if(e.length===0)return{signal:void 0,dispose:void 0};if(e.length===1)return{signal:e[0],dispose:void 0};let t=new AbortController,n=()=>{let i=e.find(o=>o.aborted)?.reason;t.abort(i),e.forEach(o=>o.removeEventListener("abort",n))};e.forEach(i=>i.addEventListener("abort",n,{once:!0}));let s=e.find(i=>i.aborted);return s&&t.abort(s.reason),{signal:t.signal,dispose:()=>{e.forEach(i=>i.removeEventListener("abort",n))}}}var Gh=(r,e)=>{if(!(!r&&!e))return r?e?Array.isArray(r)&&Array.isArray(e)?[...r,...e]:Array.isArray(r)?[...r,e]:Array.isArray(e)?[r,...e]:[r,e]:r:e};function qh(r,e){let t=new Ie({func:n=>e(...n),name:r,trace:!1,recurse:!1});return new Qe({name:r,first:t,last:new ae([{channel:Ot,value:Je}],[ee])})}function Jh(r,e){return new Ie({func:(n,s)=>e(n,s),name:r,trace:!1,recurse:!1})}var Yh=r=>r!==void 0?r+1:1;function Xh(r){let e;for(let t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e==null?e=r[t]:e=ea(e,r[t]));return e}function Ni(r,e,t){let n=va(r.channel_versions),s=r.versions_seen[V]??{},i=!1;for(let a in r.channel_versions)if(Object.prototype.hasOwnProperty.call(r.channel_versions,a)&&r.channel_versions[a]>(s[a]??n)){i=!0;break}let o=t.some(a=>e==="*"?!a.config?.tags?.includes(ee):e.includes(a.name));return i&&o}function Ri(r,e,t,n,s=!1){let i=new Set;if(Array.isArray(n))i=new Set(n.filter(a=>t.writes.some(([u,c])=>u===a)));else{for(let[a]of t.writes)if(a===n){i=new Set([a]);break}i=i||new Set}let o;if(s&&i.size>0){let a=Object.fromEntries(Object.entries(e).filter(([l,p])=>i.has(l))),u=_t(r,a,-1),c=Ir(a,u);We(Wt(u),c,[t],void 0,void 0),o=Et({...e,...c},n)}else o=Et(e,n);return o}function Ol(r,e,t){for(let[n,s]of t)if([$e,De].includes(n)&&s!=null){if(!Ee(s))throw new X(`Invalid packet type, expected SendProtocol, got ${JSON.stringify(s)}`);if(!(s.node in e))throw new X(`Invalid node name "${s.node}" in Send packet`)}r(t)}var Ay=new Set([Ci,$e,Me,V,Ot,ge]);function We(r,e,t,n,s){t.sort((p,h)=>{let f=p.path?.slice(0,3)||[],g=h.path?.slice(0,3)||[];for(let b=0;b<Math.min(f.length,g.length);b+=1){if(f[b]<g[b])return-1;if(f[b]>g[b])return 1}return f.length-g.length});let i=t.some(p=>p.triggers.length>0),o=Ii(e);for(let p of t){r.versions_seen[p.name]??={};for(let h of p.triggers)h in r.channel_versions&&(r.versions_seen[p.name][h]=r.channel_versions[h])}let a=Xh(r.channel_versions),u=new Set(t.flatMap(p=>p.triggers).filter(p=>!Sh.includes(p)));for(let p of u)p in o&&o[p].consume()&&n!==void 0&&(r.channel_versions[p]=n(a));let c={};for(let p of t)for(let[h,f]of p.writes)Ay.has(h)||h in o&&(c[h]??=[],c[h].push(f));a=Xh(r.channel_versions);let l=new Set;for(let[p,h]of Object.entries(c))if(p in o){let f=o[p],g;try{g=f.update(h)}catch(b){if(b.name===X.unminifiable_name){let _=new X(`Invalid update for channel "${p}" with values ${JSON.stringify(h)}: ${b.message}`);throw _.lc_error_code=b.lc_error_code,_}else throw b}g&&n!==void 0&&(r.channel_versions[p]=n(a),f.isAvailable()&&l.add(p))}if(i)for(let p in o){if(!Object.prototype.hasOwnProperty.call(o,p))continue;let h=o[p];h.isAvailable()&&!l.has(p)&&h.update([])&&n!==void 0&&(r.channel_versions[p]=n(a),h.isAvailable()&&l.add(p))}if(i&&!Object.keys(s??{}).some(p=>l.has(p)))for(let p in o){if(!Object.prototype.hasOwnProperty.call(o,p))continue;let h=o[p];h.finish()&&n!==void 0&&(r.channel_versions[p]=n(a),h.isAvailable()&&l.add(p))}}function Tr(r,e,t,n,s,i,o){let a={},u=n[De];if(u?.isAvailable()){let c=u.get().length;for(let l=0;l<c;l+=1){let p=Aa([$e,l],r,e,t,n,s,i,o);p!==void 0&&(a[p.id]=p)}}for(let c in t){if(!Object.prototype.hasOwnProperty.call(t,c))continue;let l=Aa([Ti,c],r,e,t,n,s,i,o);l!==void 0&&(a[l.id]=l)}return a}function Aa(r,e,t,n,s,i,o,a){let{step:u,checkpointer:c,manager:l}=a,p=i.configurable??{},h=p.checkpoint_ns??"";if(r[0]===$e&&Hh(r[r.length-1])){let f=r[r.length-1],g=qh(f.name,f.func),b=[$e],_=h===""?f.name:`${h}${ce}${f.name}`,I=Pr(JSON.stringify([_,u.toString(),f.name,$e,r[1],r[2]]),e.id),v=`${_}${Ke}${I}`,S=[...r.slice(0,3),!0],C={langgraph_step:u,langgraph_node:f.name,langgraph_triggers:b,langgraph_path:S,langgraph_checkpoint_ns:v};if(o){let j=[];return{name:f.name,input:f.input,proc:g,writes:j,config:he(ze(i,{metadata:C,store:a.store??i.store}),{runName:f.name,callbacks:l?.getChild(`graph:step:${u}`),configurable:{[an]:I,[lr]:D=>Ol(y=>j.push(...y),n,D),[xt]:(D,y=!1)=>Ri(e,s,{name:f.name,writes:j,triggers:b,path:S},D,y),[de]:c??p[de],[Be]:{...p[Be],[h]:e.id},[vt]:Pl({pendingWrites:t??[],taskId:I,currentTaskInput:f.input,resumeMap:i.configurable?.[as],namespaceHash:fn(v)}),[us]:e.channel_values[un],checkpoint_id:void 0,checkpoint_ns:v}}),triggers:b,retry_policy:f.retry,cache_key:f.cache?{key:fn((f.cache.keyFunc??JSON.stringify)([f.input])),ns:[ia,f.name??"__dynamic__"],ttl:f.cache.ttl}:void 0,id:I,path:S,writers:[]}}else return{id:I,name:f.name,interrupts:[],path:S}}else if(r[0]===$e){let f=typeof r[1]=="number"?r[1]:parseInt(r[1],10);if(!s[De]?.isAvailable())return;let g=s[De].get();if(f<0||f>=g.length)return;let b=aa(g[f])&&!Ee(g[f])?new kr(g[f].node,g[f].args):g[f];if(!aa(b)){console.warn(`Ignoring invalid packet ${JSON.stringify(b)} in pending sends.`);return}if(!(b.node in n)){console.warn(`Ignoring unknown node name ${b.node} in pending sends.`);return}let _=[$e],I=h===""?b.node:`${h}${ce}${b.node}`,v=Pr(JSON.stringify([I,u.toString(),b.node,$e,f.toString()]),e.id),S=`${I}${Ke}${v}`,C={langgraph_step:u,langgraph_node:b.node,langgraph_triggers:_,langgraph_path:r.slice(0,3),langgraph_checkpoint_ns:S};if(o){let j=n[b.node],F=j.getNode();if(F!==void 0){j.metadata!==void 0&&(C={...C,...j.metadata});let D=[];return{name:b.node,input:b.args,proc:F,subgraphs:j.subgraphs,writes:D,config:he(ze(i,{metadata:C,tags:j.tags,store:a.store??i.store}),{runName:b.node,callbacks:l?.getChild(`graph:step:${u}`),configurable:{[an]:v,[lr]:y=>Ol(T=>D.push(...T),n,y),[xt]:(y,T=!1)=>Ri(e,s,{name:b.node,writes:D,triggers:_,path:r},y,T),[de]:c??p[de],[Be]:{...p[Be],[h]:e.id},[vt]:Pl({pendingWrites:t??[],taskId:v,currentTaskInput:b.args,resumeMap:i.configurable?.[as],namespaceHash:fn(S)}),[us]:e.channel_values[un],checkpoint_id:void 0,checkpoint_ns:S}}),triggers:_,retry_policy:j.retryPolicy,cache_key:j.cachePolicy?{key:fn((j.cachePolicy.keyFunc??JSON.stringify)([b.args])),ns:[ia,j.name??"__dynamic__",b.node],ttl:j.cachePolicy.ttl}:void 0,id:v,path:r,writers:j.getWriters()}}}else return{id:v,name:b.node,interrupts:[],path:r}}else if(r[0]===Ti){let f=r[1].toString(),g=n[f];if(g===void 0)return;if(t?.length){let v=h===""?f:`${h}${ce}${f}`,S=Pr(JSON.stringify([v,u.toString(),f,Ti,f]),e.id);if(t.some(j=>j[0]===S&&j[1]!==ge))return}let b=va(e.channel_versions);if(b===void 0)return;let _=e.versions_seen[f]??{},I=g.triggers.find(v=>s[v].isAvailable()?(e.channel_versions[v]??b)>(_[v]??b):!1);if(I!==void 0){let v=Oy(g,s,o);if(v===void 0)return;let S=h===""?f:`${h}${ce}${f}`,C=Pr(JSON.stringify([S,u.toString(),f,Ti,[I]]),e.id),j=`${S}${Ke}${C}`,F={langgraph_step:u,langgraph_node:f,langgraph_triggers:[I],langgraph_path:r,langgraph_checkpoint_ns:j};if(o){let D=g.getNode();if(D!==void 0){g.metadata!==void 0&&(F={...F,...g.metadata});let y=[];return{name:f,input:v,proc:D,subgraphs:g.subgraphs,writes:y,config:he(ze(i,{metadata:F,tags:g.tags,store:a.store??i.store}),{runName:f,callbacks:l?.getChild(`graph:step:${u}`),configurable:{[an]:C,[lr]:T=>Ol($=>{y.push(...$)},n,T),[xt]:(T,$=!1)=>Ri(e,s,{name:f,writes:y,triggers:[I],path:r},T,$),[de]:c??p[de],[Be]:{...p[Be],[h]:e.id},[vt]:Pl({pendingWrites:t??[],taskId:C,currentTaskInput:v,resumeMap:i.configurable?.[as],namespaceHash:fn(j)}),[us]:e.channel_values[un],checkpoint_id:void 0,checkpoint_ns:j}}),triggers:[I],retry_policy:g.retryPolicy,cache_key:g.cachePolicy?{key:fn((g.cachePolicy.keyFunc??JSON.stringify)([v])),ns:[ia,g.name??"__dynamic__",f],ttl:g.cachePolicy.ttl}:void 0,id:C,path:r,writers:g.getWriters()}}}else return{id:C,name:f,interrupts:[],path:r}}}}function Oy(r,e,t){let n;if(typeof r.channels=="object"&&!Array.isArray(r.channels)){n={};for(let[s,i]of Object.entries(r.channels))if(r.triggers.includes(i))try{n[s]=hn(e,i,!1)}catch(o){if(o.name===ne.unminifiable_name)return;throw o}else if(i in e)try{n[s]=hn(e,i,!1)}catch(o){if(o.name===ne.unminifiable_name)continue;throw o}}else if(Array.isArray(r.channels)){let s=!1;for(let i of r.channels)try{n=hn(e,i,!1),s=!0;break}catch(o){if(o.name===ne.unminifiable_name)continue;throw o}if(!s)return}else throw new Error(`Invalid channels type, expected list or dict, got ${r.channels}`);return t&&r.mapper!==void 0&&(n=r.mapper(n)),n}function Pl({pendingWrites:r,taskId:e,currentTaskInput:t,resumeMap:n,namespaceHash:s}){let i=r.find(([u,c])=>u===Le&&c===Me)?.[2],a={callCounter:0,interruptCounter:-1,resume:(()=>{let u=r.filter(([c,l])=>c===e&&l===Me).flatMap(([c,l,p])=>p);if(n!=null&&s in n){let c=n[s];u.push(c)}return u})(),nullResume:i,subgraphCounter:0,currentTaskInput:t,consumeNullResume:()=>{if(a.nullResume)return delete a.nullResume,r.splice(r.findIndex(([u,c])=>u===Le&&c===Me),1),i}};return a}function Py(r){return"steps"in r&&Array.isArray(r.steps)}function ji(r){return"lg_is_pregel"in r&&r.lg_is_pregel===!0}function Oa(r){let e=[r];for(let t of e){if(ji(t))return t;Py(t)&&e.push(...t.steps)}}var Mi={blue:{start:"\x1B[34m",end:"\x1B[0m"},green:{start:"\x1B[32m",end:"\x1B[0m"},yellow:{start:"\x1B[33;1m",end:"\x1B[0m"}},Di=(r,e)=>`${r.start}${e}${r.end}`;function*El(r){for(let{id:e,name:t,input:n,config:s,triggers:i,writes:o}of r){if(s?.tags?.includes(ee))continue;let a=o.filter(([u,c])=>u===e&&c===V).map(([,u])=>u);yield{id:e,name:t,input:n,triggers:i,interrupts:a}}}function Ey(r){return typeof r!="object"||r===null?!1:"$writes"in r&&Array.isArray(r.$writes)}function Zh(r){let e={};for(let[t,n]of r){let s=String(t);if(s in e){let i=Ey(e[s])?e[s].$writes:[e[s]];i.push(n),e[s]={$writes:i}}else e[s]=n}return e}function*Qh(r,e){for(let[{id:t,name:n,config:s},i]of r)s?.tags?.includes(ee)||(yield{id:t,name:n,result:Zh(i.filter(([o])=>Array.isArray(e)?e.includes(o):o===e)),interrupts:i.filter(o=>o[0]===V).map(o=>o[1])})}function*ed(r,e,t,n,s,i,o,a){function u(p){let h={};return p.callbacks!=null&&(h.callbacks=p.callbacks),p.configurable!=null&&(h.configurable=p.configurable),p.maxConcurrency!=null&&(h.max_concurrency=p.maxConcurrency),p.metadata!=null&&(h.metadata=p.metadata),p.recursionLimit!=null&&(h.recursion_limit=p.recursionLimit),p.runId!=null&&(h.run_id=p.runId),p.runName!=null&&(h.run_name=p.runName),p.tags!=null&&(h.tags=p.tags),h}let c=r.configurable?.checkpoint_ns,l={};for(let p of s){if(!(p.subgraphs?.length?p.subgraphs:[p.proc]).find(Oa))continue;let f=`${p.name}:${p.id}`;c&&(f=`${c}|${f}`),l[p.id]={configurable:{thread_id:r.configurable?.thread_id,checkpoint_ns:f}}}yield{config:u(r),values:Et(e,t),metadata:n,next:s.map(p=>p.name),tasks:Il(s,i,l,a),parentConfig:o?u(o):void 0}}function Il(r,e,t,n){return r.map(s=>{let i=e.find(([c,l])=>c===s.id&&l===ge)?.[2],o=e.filter(([c,l])=>c===s.id&&l===V).map(([,,c])=>c),a=(()=>{if(i||o.length||!e.length)return;let c=e.findIndex(([l,p])=>l===s.id&&p===Ot);if(c>=0)return e[c][2];if(typeof n=="string")return e.find(([l,p])=>l===s.id&&p===n)?.[2];if(Array.isArray(n)){let l=e.filter(([p,h])=>p===s.id&&n.includes(h)).map(([,p,h])=>[p,h]);return l.length?Zh(l):void 0}})();if(i)return{id:s.id,name:s.name,path:s.path,error:i,interrupts:o,result:a};let u=t?.[s.id];return{id:s.id,name:s.name,path:s.path,interrupts:o,...u!==void 0?{state:u}:{},result:a}})}function td(r,e,t){console.log([`${Di(Mi.blue,`[${r}:checkpoint]`)}`,`\x1B[1m State at the end of step ${r}:\x1B[0m
84
- `,JSON.stringify(Et(e,t),null,2)].join(""))}function Pa(r,e){let t=e.length;console.log([`${Di(Mi.blue,`[${r}:tasks]`)}`,`\x1B[1m Starting step ${r} with ${t} task${t===1?"":"s"}:\x1B[0m
79
+ `)}`),new yo(b,JSON.stringify(e))}i=s}let o=Bn(t),u=await at.configure(o.callbacks,this.callbacks,o.tags||n,this.tags,o.metadata,this.metadata,{verbose:this.verbose})?.handleToolStart(this.toJSON(),typeof e=="string"?e:JSON.stringify(e),o.runId,void 0,void 0,void 0,o.runName);delete o.runId;let c;try{c=await this._call(i,u,o)}catch(g){throw await u?.handleToolError(g),g}let l,p;if(this.responseFormat==="content_and_artifact")if(Array.isArray(c)&&c.length===2)[l,p]=c;else throw new Error(`Tool response format is "content_and_artifact" but the output was not a two-tuple.
80
+ Result: ${JSON.stringify(c)}`);else l=c;let h;bo(e)&&(h=e.id),!h&&pf(o)&&(h=o.toolCall.id);let f=Lb({content:l,artifact:p,toolCallId:h,name:this.name,metadata:this.metadata});return await u?.handleToolEnd(f),f}},es=class extends an{constructor(e){super(e),Object.defineProperty(this,"schema",{enumerable:!0,configurable:!0,writable:!0,value:ae.object({input:ae.string().optional()}).transform(t=>t.input)})}call(e,t){let n=typeof e=="string"||e==null?{input:e}:e;return super.call(n,t)}},wi=class extends es{static lc_name(){return"DynamicTool"}constructor(e){super(e),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"description",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"func",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=e.name,this.description=e.description,this.func=e.func,this.returnDirect=e.returnDirect??this.returnDirect}async call(e,t){let n=Bn(t);return n.runName===void 0&&(n.runName=this.name),super.call(e,n)}async _call(e,t,n){return this.func(e,t,n)}},Jo=class extends an{static lc_name(){return"DynamicStructuredTool"}constructor(e){super(e),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"description",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"func",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"schema",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=e.name,this.description=e.description,this.func=e.func,this.returnDirect=e.returnDirect??this.returnDirect,this.schema=e.schema}async call(e,t,n){let s=Bn(t);return s.runName===void 0&&(s.runName=this.name),super.call(e,s,n)}_call(e,t,n){return this.func(e,t,n)}},Rc=class{getTools(){return this.tools}};function $b(r,e){let t=Lu(e.schema),n=zf(e.schema);if(!e.schema||t||n)return new wi({...e,description:e.description??(e.schema&&$t(e.schema))??`${e.name} tool`,func:async(o,a,u)=>new Promise((c,l)=>{let p=he(u,{callbacks:a?.getChild()});Ye.runWithConfig(Wn(p),async()=>{try{c(r(o,p))}catch(h){l(h)}})})});let s=e.schema,i=e.description??e.schema.description??`${e.name} tool`;return new Jo({...e,description:i,schema:s,func:async(o,a,u)=>new Promise((c,l)=>{let p=he(u,{callbacks:a?.getChild()});Ye.runWithConfig(Wn(p),async()=>{try{c(r(o,p))}catch(h){l(h)}})})})}function Lb(r){let{content:e,artifact:t,toolCallId:n,metadata:s}=r;return n&&!mf(e)?typeof e=="string"||Array.isArray(e)&&e.every(i=>typeof i=="object")?new Tu({status:"success",content:e,artifact:t,tool_call_id:n,name:r.name,metadata:s}):new Tu({status:"success",content:Fb(e),artifact:t,tool_call_id:n,name:r.name,metadata:s}):e}function Fb(r){try{return JSON.stringify(r,null,2)??""}catch{return`${r}`}}var Mc={};ne(Mc,{getTracingCallbackHandler:()=>Ub,getTracingV2CallbackHandler:()=>zb});var jc={};ne(jc,{LangChainTracerV1:()=>xi});var xi=class extends Zr{constructor(){super(),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"langchain_tracer"}),Object.defineProperty(this,"endpoint",{enumerable:!0,configurable:!0,writable:!0,value:te("LANGCHAIN_ENDPOINT")||"http://localhost:1984"}),Object.defineProperty(this,"headers",{enumerable:!0,configurable:!0,writable:!0,value:{"Content-Type":"application/json"}}),Object.defineProperty(this,"session",{enumerable:!0,configurable:!0,writable:!0,value:void 0});let e=te("LANGCHAIN_API_KEY");e&&(this.headers["x-api-key"]=e)}async newSession(e){let t={start_time:Date.now(),name:e},n=await this.persistSession(t);return this.session=n,n}async loadSession(e){let t=`${this.endpoint}/sessions?name=${e}`;return this._handleSessionResponse(t)}async loadDefaultSession(){let e=`${this.endpoint}/sessions?name=default`;return this._handleSessionResponse(e)}async convertV2RunToRun(e){let t=this.session??await this.loadDefaultSession(),n=e.serialized,s;if(e.run_type==="llm"){let i=e.inputs.prompts?e.inputs.prompts:e.inputs.messages.map(a=>vo(a));s={uuid:e.id,start_time:e.start_time,end_time:e.end_time,execution_order:e.execution_order,child_execution_order:e.child_execution_order,serialized:n,type:e.run_type,session_id:t.id,prompts:i,response:e.outputs}}else if(e.run_type==="chain"){let i=await Promise.all(e.child_runs.map(a=>this.convertV2RunToRun(a)));s={uuid:e.id,start_time:e.start_time,end_time:e.end_time,execution_order:e.execution_order,child_execution_order:e.child_execution_order,serialized:n,type:e.run_type,session_id:t.id,inputs:e.inputs,outputs:e.outputs,child_llm_runs:i.filter(a=>a.type==="llm"),child_chain_runs:i.filter(a=>a.type==="chain"),child_tool_runs:i.filter(a=>a.type==="tool")}}else if(e.run_type==="tool"){let i=await Promise.all(e.child_runs.map(a=>this.convertV2RunToRun(a)));s={uuid:e.id,start_time:e.start_time,end_time:e.end_time,execution_order:e.execution_order,child_execution_order:e.child_execution_order,serialized:n,type:e.run_type,session_id:t.id,tool_input:e.inputs.input,output:e.outputs?.output,action:JSON.stringify(n),child_llm_runs:i.filter(a=>a.type==="llm"),child_chain_runs:i.filter(a=>a.type==="chain"),child_tool_runs:i.filter(a=>a.type==="tool")}}else throw new Error(`Unknown run type: ${e.run_type}`);return s}async persistRun(e){let t,n;e.run_type!==void 0?n=await this.convertV2RunToRun(e):n=e,n.type==="llm"?t=`${this.endpoint}/llm-runs`:n.type==="chain"?t=`${this.endpoint}/chain-runs`:t=`${this.endpoint}/tool-runs`;let s=await fetch(t,{method:"POST",headers:this.headers,body:JSON.stringify(n)});s.ok||console.error(`Failed to persist run: ${s.status} ${s.statusText}`)}async persistSession(e){let t=`${this.endpoint}/sessions`,n=await fetch(t,{method:"POST",headers:this.headers,body:JSON.stringify(e)});return n.ok?{id:(await n.json()).id,...e}:(console.error(`Failed to persist session: ${n.status} ${n.statusText}, using default session.`),{id:1,...e})}async _handleSessionResponse(e){let t=await fetch(e,{method:"GET",headers:this.headers}),n;if(!t.ok)return console.error(`Failed to load session: ${t.status} ${t.statusText}`),n={id:1,start_time:Date.now()},this.session=n,n;let s=await t.json();return s.length===0?(n={id:1,start_time:Date.now()},this.session=n,n):([n]=s,this.session=n,n)}};async function Ub(r){let e=new xi;return r?await e.loadSession(r):await e.loadDefaultSession(),e}async function zb(){return new kf}var $c={};ne($c,{RunCollectorCallbackHandler:()=>Dc});var Dc=class extends Zr{constructor({exampleId:e}={}){super({_awaitHandler:!0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"run_collector"}),Object.defineProperty(this,"exampleId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tracedRuns",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.exampleId=e,this.tracedRuns=[]}async persistRun(e){let t={...e};t.reference_example_id=this.exampleId,this.tracedRuns.push(t)}};var Lc={};ne(Lc,{chunkArray:()=>Xo});var Xo=(r,e)=>r.reduce((t,n,s)=>{let i=Math.floor(s/e),o=t[i]||[];return t[i]=o.concat([n]),t},[]);var Uc={};ne(Uc,{convertToOpenAIFunction:()=>Fc,convertToOpenAITool:()=>Yo,isLangChainTool:()=>kr,isRunnableToolLike:()=>yi,isStructuredTool:()=>bi,isStructuredToolParams:()=>_i});function Fc(r,e){let t=typeof e=="number"?void 0:e;return{name:r.name,description:r.description,parameters:Ae(r.schema),...t?.strict!==void 0?{strict:t.strict}:{}}}function Yo(r,e){let t=typeof e=="number"?void 0:e,n;return kr(r)?n={type:"function",function:Fc(r)}:n=r,t?.strict!==void 0&&(n.function.strict=t.strict),n}var Bc={};ne(Bc,{cosineSimilarity:()=>zc,euclideanDistance:()=>Hb,innerProduct:()=>Wb,matrixFunc:()=>Qo,maximalMarginalRelevance:()=>Vb,normalize:()=>Kb});function Zo(r,e){let t=0,n=0,s=0;for(let i=0;i<r.length;i++)t+=r[i]*e[i],n+=r[i]*r[i],s+=e[i]*e[i];return t/(Math.sqrt(n)*Math.sqrt(s))}function xh(r,e){let t=0;for(let n=0;n<r.length;n++)t+=r[n]*e[n];return t}function Bb(r,e){let t=0;for(let n=0;n<r.length;n++)t+=(r[n]-e[n])*(r[n]-e[n]);return t}function vh(r,e){return Math.sqrt(Bb(r,e))}function Qo(r,e,t){if(r.length===0||r[0].length===0||e.length===0||e[0].length===0)return[[]];if(r[0].length!==e[0].length)throw new Error(`Number of columns in X and Y must be the same. X has shape ${[r.length,r[0].length]} and Y has shape ${[e.length,e[0].length]}.`);return r.map(n=>e.map(s=>t(n,s)).map(s=>Number.isNaN(s)?0:s))}function Kb(r,e=!1){let t=Gb(r);return r.map(n=>n.map(s=>e?1-s/t:s/t))}function zc(r,e){return Qo(r,e,Zo)}function Wb(r,e){return Qo(r,e,xh)}function Hb(r,e){return Qo(r,e,vh)}function Vb(r,e,t=.5,n=4){if(Math.min(n,e.length)<=0)return[];let s=Array.isArray(r[0])?r:[r],i=zc(s,e)[0],o=Ah(i).maxIndex,a=[e[o]],u=[o];for(;u.length<Math.min(n,e.length);){let c=-1/0,l=-1,p=zc(e,a);i.forEach((h,f)=>{if(u.includes(f))return;let g=Math.max(...p[f]),b=t*h-(1-t)*g;b>c&&(c=b,l=f)}),a.push(e[l]),u.push(l)}return u}function Ah(r){if(r.length===0)return{maxIndex:-1,maxValue:NaN};let e=r[0],t=0;for(let n=1;n<r.length;n+=1)r[n]>e&&(t=n,e=r[n]);return{maxIndex:t,maxValue:e}}function Gb(r){return r.reduce((e,t)=>Math.max(e,Ah(t).maxValue),0)}var al={};ne(al,{FakeChatMessageHistory:()=>Qc,FakeChatModel:()=>Jc,FakeEmbeddings:()=>nl,FakeLLM:()=>Gc,FakeListChatMessageHistory:()=>el,FakeListChatModel:()=>Zc,FakeRetriever:()=>Yc,FakeRunnable:()=>Vc,FakeSplitIntoListParser:()=>Hc,FakeStreamingChatModel:()=>Xc,FakeStreamingLLM:()=>qc,FakeTool:()=>rl,FakeTracer:()=>tl,FakeVectorStore:()=>ol,SingleRunExtractor:()=>il,SyntheticEmbeddings:()=>sl});var Wc={};ne(Wc,{SaveableVectorStore:()=>Kc,VectorStore:()=>rs,VectorStoreRetriever:()=>ts});var ts=class extends on{static lc_name(){return"VectorStoreRetriever"}get lc_namespace(){return["langchain_core","vectorstores"]}_vectorstoreType(){return this.vectorStore._vectorstoreType()}constructor(e){super(e),Object.defineProperty(this,"vectorStore",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"k",{enumerable:!0,configurable:!0,writable:!0,value:4}),Object.defineProperty(this,"searchType",{enumerable:!0,configurable:!0,writable:!0,value:"similarity"}),Object.defineProperty(this,"searchKwargs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"filter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.vectorStore=e.vectorStore,this.k=e.k??this.k,this.searchType=e.searchType??this.searchType,this.filter=e.filter,e.searchType==="mmr"&&(this.searchKwargs=e.searchKwargs)}async _getRelevantDocuments(e,t){if(this.searchType==="mmr"){if(typeof this.vectorStore.maxMarginalRelevanceSearch!="function")throw new Error(`The vector store backing this retriever, ${this._vectorstoreType()} does not support max marginal relevance search.`);return this.vectorStore.maxMarginalRelevanceSearch(e,{k:this.k,filter:this.filter,...this.searchKwargs},t?.getChild("vectorstore"))}return this.vectorStore.similaritySearch(e,this.k,this.filter,t?.getChild("vectorstore"))}async addDocuments(e,t){return this.vectorStore.addDocuments(e,t)}},rs=class extends or{constructor(e,t){super(t),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","vectorstores",this._vectorstoreType()]}),Object.defineProperty(this,"embeddings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.embeddings=e}async delete(e){throw new Error("Not implemented.")}async similaritySearch(e,t=4,n=void 0,s=void 0){return(await this.similaritySearchVectorWithScore(await this.embeddings.embedQuery(e),t,n)).map(o=>o[0])}async similaritySearchWithScore(e,t=4,n=void 0,s=void 0){return this.similaritySearchVectorWithScore(await this.embeddings.embedQuery(e),t,n)}static fromTexts(e,t,n,s){throw new Error("the Langchain vectorstore implementation you are using forgot to override this, please report a bug")}static fromDocuments(e,t,n){throw new Error("the Langchain vectorstore implementation you are using forgot to override this, please report a bug")}asRetriever(e,t,n,s,i,o){if(typeof e=="number")return new ts({vectorStore:this,k:e,filter:t,tags:[...s??[],this._vectorstoreType()],metadata:i,verbose:o,callbacks:n});{let a={vectorStore:this,k:e?.k,filter:e?.filter,tags:[...e?.tags??[],this._vectorstoreType()],metadata:e?.metadata,verbose:e?.verbose,callbacks:e?.callbacks,searchType:e?.searchType};return e?.searchType==="mmr"?new ts({...a,searchKwargs:e.searchKwargs}):new ts({...a})}}},Kc=class extends rs{static load(e,t){throw new Error("Not implemented")}};var Hc=class extends Bt{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["tests","fake"]})}getFormatInstructions(){return""}async parse(e){return e.split(",").map(t=>t.trim())}},Vc=class extends Z{constructor(e){super(e),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["tests","fake"]}),Object.defineProperty(this,"returnOptions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.returnOptions=e.returnOptions}async invoke(e,t){return this.returnOptions?t??{}:{input:e}}},Gc=class extends Zn{constructor(e){super(e),Object.defineProperty(this,"response",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"thrownErrorString",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.response=e.response,this.thrownErrorString=e.thrownErrorString}_llmType(){return"fake"}async _call(e,t,n){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let s=this.response??e;return await n?.handleLLMNewToken(s),s}},qc=class extends Zn{constructor(e){super(e),Object.defineProperty(this,"sleep",{enumerable:!0,configurable:!0,writable:!0,value:50}),Object.defineProperty(this,"responses",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"thrownErrorString",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.sleep=e.sleep??this.sleep,this.responses=e.responses,this.thrownErrorString=e.thrownErrorString}_llmType(){return"fake"}async _call(e){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let t=this.responses?.[0];return this.responses=this.responses?.slice(1),t??e}async*_streamResponseChunks(e,t,n){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let s=this.responses?.[0];this.responses=this.responses?.slice(1);for(let i of s??e)await new Promise(o=>setTimeout(o,this.sleep)),yield{text:i,generationInfo:{}},await n?.handleLLMNewToken(i)}},Jc=class extends zt{_combineLLMOutput(){return[]}_llmType(){return"fake"}async _generate(e,t,n){if(t?.stop?.length)return{generations:[{message:new ce(t.stop[0]),text:t.stop[0]}]};let s=e.map(i=>typeof i.content=="string"?i.content:JSON.stringify(i.content,null,2)).join(`
81
+ `);return await n?.handleLLMNewToken(s),{generations:[{message:new ce(s),text:s}],llmOutput:{}}}},Xc=class r extends zt{constructor({sleep:e=50,responses:t=[],chunks:n=[],toolStyle:s="openai",thrownErrorString:i,...o}){super(o),Object.defineProperty(this,"sleep",{enumerable:!0,configurable:!0,writable:!0,value:50}),Object.defineProperty(this,"responses",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"chunks",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"toolStyle",{enumerable:!0,configurable:!0,writable:!0,value:"openai"}),Object.defineProperty(this,"thrownErrorString",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tools",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.sleep=e,this.responses=t,this.chunks=n,this.toolStyle=s,this.thrownErrorString=i}_llmType(){return"fake"}bindTools(e){let t=[...this.tools,...e],n=t.map(o=>{switch(this.toolStyle){case"openai":return{type:"function",function:{name:o.name,description:o.description,parameters:Ae(o.schema)}};case"anthropic":return{name:o.name,description:o.description,input_schema:Ae(o.schema)};case"bedrock":return{toolSpec:{name:o.name,description:o.description,inputSchema:Ae(o.schema)}};case"google":return{name:o.name,description:o.description,parameters:Ae(o.schema)};default:throw new Error(`Unsupported tool style: ${this.toolStyle}`)}}),s=this.toolStyle==="google"?[{functionDeclarations:n}]:n,i=new r({sleep:this.sleep,responses:this.responses,chunks:this.chunks,toolStyle:this.toolStyle,thrownErrorString:this.thrownErrorString});return i.tools=t,i.withConfig({tools:s})}async _generate(e,t,n){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let s=this.responses?.[0]?.content??e[0].content??"";return{generations:[{text:"",message:new ce({content:s,tool_calls:this.chunks?.[0]?.tool_calls})}]}}async*_streamResponseChunks(e,t,n){if(this.thrownErrorString)throw new Error(this.thrownErrorString);if(this.chunks?.length){for(let o of this.chunks){let a=new ht({message:new Mt({content:o.content,tool_calls:o.tool_calls,additional_kwargs:o.additional_kwargs??{}}),text:o.content?.toString()??""});yield a,await n?.handleLLMNewToken(o.content,void 0,void 0,void 0,void 0,{chunk:a})}return}let s=this.responses?.[0]??new ce(typeof e[0].content=="string"?e[0].content:""),i=typeof s.content=="string"?s.content:"";for(let o of i){await new Promise(u=>setTimeout(u,this.sleep));let a=new ht({message:new Mt({content:o}),text:o});yield a,await n?.handleLLMNewToken(o,void 0,void 0,void 0,void 0,{chunk:a})}}},Yc=class extends on{constructor(e){super(),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["test","fake"]}),Object.defineProperty(this,"output",{enumerable:!0,configurable:!0,writable:!0,value:[new yt({pageContent:"foo"}),new yt({pageContent:"bar"})]}),this.output=e?.output??this.output}async _getRelevantDocuments(e){return this.output}},Zc=class extends zt{static lc_name(){return"FakeListChatModel"}constructor(e){super(e),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"responses",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"i",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"sleep",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"emitCustomEvent",{enumerable:!0,configurable:!0,writable:!0,value:!1});let{responses:t,sleep:n,emitCustomEvent:s}=e;this.responses=t,this.sleep=n,this.emitCustomEvent=s??this.emitCustomEvent}_combineLLMOutput(){return[]}_llmType(){return"fake-list"}async _generate(e,t,n){if(await this._sleepIfRequested(),t?.thrownErrorString)throw new Error(t.thrownErrorString);if(this.emitCustomEvent&&await n?.handleCustomEvent("some_test_event",{someval:!0}),t?.stop?.length)return{generations:[this._formatGeneration(t.stop[0])]};{let s=this._currentResponse();return this._incrementResponse(),{generations:[this._formatGeneration(s)],llmOutput:{}}}}_formatGeneration(e){return{message:new ce(e),text:e}}async*_streamResponseChunks(e,t,n){let s=this._currentResponse();this._incrementResponse(),this.emitCustomEvent&&await n?.handleCustomEvent("some_test_event",{someval:!0});for await(let i of s){if(await this._sleepIfRequested(),t?.thrownErrorString)throw new Error(t.thrownErrorString);yield this._createResponseChunk(i),n?.handleLLMNewToken(i)}}async _sleepIfRequested(){this.sleep!==void 0&&await this._sleep()}async _sleep(){return new Promise(e=>{setTimeout(()=>e(),this.sleep)})}_createResponseChunk(e){return new ht({message:new Mt({content:e}),text:e})}_currentResponse(){return this.responses[this.i]}_incrementResponse(){this.i<this.responses.length-1?this.i+=1:this.i=0}withStructuredOutput(e,t){return Ft.from(async n=>{let s=await this.invoke(n);if(s.tool_calls?.[0]?.args)return s.tool_calls[0].args;if(typeof s.content=="string")return JSON.parse(s.content);throw new Error("No structured output found")})}},Qc=class extends mi{constructor(){super(),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","message","fake"]}),Object.defineProperty(this,"messages",{enumerable:!0,configurable:!0,writable:!0,value:[]})}async getMessages(){return this.messages}async addMessage(e){this.messages.push(e)}async addUserMessage(e){this.messages.push(new ot(e))}async addAIChatMessage(e){this.messages.push(new ce(e))}async clear(){this.messages=[]}},el=class extends Xn{constructor(){super(),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","message","fake"]}),Object.defineProperty(this,"messages",{enumerable:!0,configurable:!0,writable:!0,value:[]})}async addMessage(e){this.messages.push(e)}async getMessages(){return this.messages}},tl=class extends Zr{constructor(){super(),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"fake_tracer"}),Object.defineProperty(this,"runs",{enumerable:!0,configurable:!0,writable:!0,value:[]})}persistRun(e){return this.runs.push(e),Promise.resolve()}},rl=class extends an{constructor(e){super(e),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"description",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"schema",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=e.name,this.description=e.description,this.schema=e.schema}async _call(e,t){return JSON.stringify(e)}},nl=class extends Ir{constructor(e){super(e??{})}embedDocuments(e){return Promise.resolve(e.map(()=>[.1,.2,.3,.4]))}embedQuery(e){return Promise.resolve([.1,.2,.3,.4])}},sl=class extends Ir{constructor(e){super(e??{}),Object.defineProperty(this,"vectorSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.vectorSize=e?.vectorSize??4}async embedDocuments(e){return Promise.all(e.map(t=>this.embedQuery(t)))}async embedQuery(e){let t=e;t=t.toLowerCase().replaceAll(/[^a-z ]/g,"");let n=t.length%this.vectorSize,s=n===0?0:this.vectorSize-n,i=t.length+s;t=t.padEnd(i," ");let o=t.length/this.vectorSize,a=[];for(let c=0;c<t.length;c+=o)a.push(t.slice(c,c+o));return a.map(c=>{let l=0;for(let h=0;h<c.length;h+=1)l+=c===" "?0:c.charCodeAt(h);return l%26/26})}},il=class extends Zr{constructor(){super(),Object.defineProperty(this,"runPromiseResolver",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"runPromise",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"single_run_extractor"}),this.runPromise=new Promise(e=>{this.runPromiseResolver=e})}async persistRun(e){this.runPromiseResolver(e)}async extract(){return this.runPromise}},ol=class r extends rs{_vectorstoreType(){return"memory"}constructor(e,{similarity:t,...n}={}){super(e,n),Object.defineProperty(this,"memoryVectors",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"similarity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.similarity=t??Zo}async addDocuments(e){let t=e.map(({pageContent:n})=>n);return this.addVectors(await this.embeddings.embedDocuments(t),e)}async addVectors(e,t){let n=e.map((s,i)=>({content:t[i].pageContent,embedding:s,metadata:t[i].metadata}));this.memoryVectors=this.memoryVectors.concat(n)}async similaritySearchVectorWithScore(e,t,n){let s=u=>{if(!n)return!0;let c=new yt({metadata:u.metadata,pageContent:u.content});return n(c)},i=this.memoryVectors.filter(s);return i.map((u,c)=>({similarity:this.similarity(e,u.embedding),index:c})).sort((u,c)=>u.similarity>c.similarity?-1:0).slice(0,t).map(u=>[new yt({metadata:i[u.index].metadata,pageContent:i[u.index].content}),u.similarity])}static async fromTexts(e,t,n,s){let i=[];for(let o=0;o<e.length;o+=1){let a=Array.isArray(t)?t[o]:t,u=new yt({pageContent:e[o],metadata:a});i.push(u)}return r.fromDocuments(i,n,s)}static async fromDocuments(e,t,n){let s=new this(t,n);return await s.addDocuments(e),s}static async fromExistingIndex(e,t){return new this(e,t)}};var ul={};ne(ul,{extendInteropZodObject:()=>Fu,getInteropZodDefaultGetter:()=>Uu,getInteropZodObjectShape:()=>Oo,getSchemaDescription:()=>$t,interopParse:()=>ci,interopParseAsync:()=>ui,interopSafeParse:()=>Cg,interopSafeParseAsync:()=>$u,interopZodObjectPartial:()=>li,interopZodObjectPassthrough:()=>Dg,interopZodObjectStrict:()=>Mg,interopZodTransformInputSchema:()=>$g,isInteropZodObject:()=>Lt,isInteropZodSchema:()=>Ze,isShapelessZodSchema:()=>Tg,isSimpleStringZodSchema:()=>Lu,isZodArrayV4:()=>jg,isZodObjectV3:()=>Rg,isZodObjectV4:()=>Ng,isZodSchema:()=>Sg,isZodSchemaV3:()=>ai,isZodSchemaV4:()=>Du});var qb=50;function Jb(r){let e={};for(let t=r;t&&t.prototype;t=Object.getPrototypeOf(t))Object.assign(e,Reflect.get(t.prototype,"lc_aliases"));return Object.entries(e).reduce((t,[n,s])=>(t[s]=n,t),{})}async function ea(r){let{optionalImportsMap:e,optionalImportEntrypoints:t,importMap:n,secretsMap:s,secretsFromEnv:i,path:o,depth:a,maxDepth:u}=this,c=o.join(".");if(a>u)throw new Error(`Maximum recursion depth (${u}) exceeded during deserialization. This may indicate a malicious payload or you may need to increase maxDepth.`);if(typeof r!="object"||r==null)return r;if(Array.isArray(r))return Promise.all(r.map((h,f)=>ea.call({...this,path:[...o,`${f}`],depth:a+1},h)));let l=r;if(of(l))return af(l);if("lc"in l&&"type"in l&&"id"in l&&l.lc===1&&l.type==="secret"){let h=l,[f]=h.id;if(f in s)return s[f];if(i){let g=te(f);if(g)return g}throw new Error(`Missing secret "${f}" at ${c}`)}if("lc"in l&&"type"in l&&"id"in l&&l.lc===1&&l.type==="not_implemented"){let f=JSON.stringify(l);throw new Error(`Trying to load an object that doesn't implement serialization: ${c} -> ${f}`)}if("lc"in l&&"type"in l&&"id"in l&&"kwargs"in l&&l.lc===1&&l.type==="constructor"){let h=l,f=JSON.stringify(h),[g,...b]=h.id.slice().reverse(),_=b.reverse(),P={langchain_core:cl,langchain:n},v=null,S=[_.join("/")];_[0]==="langchain_community"&&S.push(["langchain",..._.slice(1)].join("/"));let C=S.find(y=>y in e);if(sh.concat(t).includes(_.join("/"))||C)if(C!==void 0)v=await e[C];else throw new Error(`Missing key "${_.join("/")}" for ${c} in load(optionalImportsMap={})`);else{let y;if(_[0]==="langchain"||_[0]==="langchain_core")y=P[_[0]],_.shift();else throw new Error(`Invalid namespace: ${c} -> ${f}`);if(_.length===0)throw new Error(`Invalid namespace: ${c} -> ${f}`);let T;do{if(T=_.join("__"),T in y)break;_.pop()}while(_.length>0);T in y&&(v=y[T])}if(typeof v!="object"||v===null)throw new Error(`Invalid namespace: ${c} -> ${f}`);let j=v[g]??Object.values(v).find(y=>typeof y=="function"&&uf(y)===g);if(typeof j!="function")throw new Error(`Invalid identifer: ${c} -> ${f}`);let F=await ea.call({...this,path:[...o,"kwargs"],depth:a+1},h.kwargs),D=new j(sf(F,nf,Jb(j)));return Object.defineProperty(D.constructor,"name",{value:g}),D}let p={};for(let[h,f]of Object.entries(l))p[h]=await ea.call({...this,path:[...o,h],depth:a+1},f);return p}async function Oh(r,e){let t=JSON.parse(r),n={optionalImportsMap:e?.optionalImportsMap??{},optionalImportEntrypoints:e?.optionalImportEntrypoints??[],secretsMap:e?.secretsMap??{},secretsFromEnv:e?.secretsFromEnv??!1,importMap:e?.importMap??{},path:["$"],depth:0,maxDepth:e?.maxDepth??qb};return ea.call(n,t)}var Ph="[...]",Xb="[Circular]",ta=[],ns=[];function Yb(){return{depthLimit:Number.MAX_SAFE_INTEGER,edgesLimit:Number.MAX_SAFE_INTEGER}}function Eh(r,e,t,n){typeof n>"u"&&(n=Yb()),pl(r,"",0,[],void 0,0,n);var s;try{ns.length===0?s=JSON.stringify(r,e,t):s=JSON.stringify(r,Zb(e),t)}catch{return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{for(;ta.length!==0;){var i=ta.pop();i.length===4?Object.defineProperty(i[0],i[1],i[3]):i[0][i[1]]=i[2]}}return s}function ll(r,e,t,n){var s=Object.getOwnPropertyDescriptor(n,t);s.get!==void 0?s.configurable?(Object.defineProperty(n,t,{value:r}),ta.push([n,t,e,s])):ns.push([e,t,r]):(n[t]=r,ta.push([n,t,e]))}function pl(r,e,t,n,s,i,o){i+=1;var a;if(typeof r=="object"&&r!==null){for(a=0;a<n.length;a++)if(n[a]===r){ll(Xb,r,e,s);return}if(typeof o.depthLimit<"u"&&i>o.depthLimit){ll(Ph,r,e,s);return}if(typeof o.edgesLimit<"u"&&t+1>o.edgesLimit){ll(Ph,r,e,s);return}if(n.push(r),Array.isArray(r))for(a=0;a<r.length;a++)pl(r[a],a,a,n,r,i,o);else{var u=Object.keys(r);for(a=0;a<u.length;a++){var c=u[a];pl(r[c],c,a,n,r,i,o)}}n.pop()}}function Zb(r){return r=typeof r<"u"?r:function(e,t){return t},function(e,t){if(ns.length>0)for(var n=0;n<ns.length;n++){var s=ns[n];if(s[1]===e&&s[0]===t){t=s[2],ns.splice(n,1);break}}return r.call(this,e,t)}}function Qb(r){return r!==null&&r.lc===1&&r.type==="constructor"&&Array.isArray(r.id)}async function hl(r){if(r&&typeof r=="object"){if(Array.isArray(r))return await Promise.all(r.map(t=>hl(t)));{let e={};for(let[t,n]of Object.entries(r))e[t]=await hl(n);if(e.lc===2&&e.type==="undefined")return;if(e.lc===2&&e.type==="constructor"&&Array.isArray(e.id))try{let t=e.id[e.id.length-1],n;switch(t){case"Set":n=Set;break;case"Map":n=Map;break;case"RegExp":n=RegExp;break;case"Error":n=Error;break;default:return e}return e.method?n[e.method](...e.args||[]):new n(...e.args||[])}catch{return e}else if(Qb(e))return Oh(JSON.stringify(e));return e}}return r}function fl(r,e,t,n){return{lc:2,type:"constructor",id:[r.name],method:e??null,args:t??[],kwargs:n??{}}}function ey(r){return r===void 0?{lc:2,type:"undefined"}:r instanceof Set||r instanceof Map?fl(r.constructor,void 0,[Array.from(r)]):r instanceof RegExp?fl(RegExp,void 0,[r.source,r.flags]):r instanceof Error?fl(r.constructor,void 0,[r.message]):r?.lg_name==="Send"?{node:r.node,args:r.args}:r}var ss=class{_dumps(e){return new TextEncoder().encode(Eh(e,(n,s)=>ey(s)))}async dumpsTyped(e){return e instanceof Uint8Array?["bytes",e]:["json",this._dumps(e)]}async _loads(e){let t=JSON.parse(e);return hl(t)}async loadsTyped(e,t){if(e==="bytes")return typeof t=="string"?new TextEncoder().encode(t):t;if(e==="json")return this._loads(typeof t=="string"?t:new TextDecoder().decode(t));throw new Error(`Unknown serialization type: ${e}`)}};function Ih(r){if(typeof r!="object"||r===null)return r;let e=Array.isArray(r)?[]:{};for(let t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=Ih(r[t]));return e}function Ai(){return{v:4,id:Co(-2),ts:new Date().toISOString(),channel_values:{},channel_versions:{},versions_seen:{}}}function Wt(r){return{v:r.v,id:r.id,ts:r.ts,channel_values:{...r.channel_values},channel_versions:{...r.channel_versions},versions_seen:Ih(r.versions_seen)}}var vi=class{constructor(e){Object.defineProperty(this,"serde",{enumerable:!0,configurable:!0,writable:!0,value:new ss}),this.serde=e||this.serde}async get(e){let t=await this.getTuple(e);return t?t.checkpoint:void 0}getNextVersion(e){if(typeof e=="string")throw new Error("Please override this method to use string versions.");return e!==void 0&&typeof e=="number"?e+1:1}};function dl(r,e){return typeof r=="number"&&typeof e=="number"?Math.sign(r-e):String(r).localeCompare(String(e))}function ra(...r){return r.reduce((e,t,n)=>n===0?t:dl(e,t)>=0?e:t)}var na={[th]:-1,[Jn]:-2,[rh]:-3,[nh]:-4};function kh(r){return r.configurable?.checkpoint_id||r.configurable?.thread_ts||""}function Oi(r,e,t){return JSON.stringify([r,e,t])}function ty(r){let[e,t,n]=JSON.parse(r);return{threadId:e,checkpointNamespace:t,checkpointId:n}}var is=class extends vi{constructor(e){super(e),Object.defineProperty(this,"storage",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"writes",{enumerable:!0,configurable:!0,writable:!0,value:{}})}async _migratePendingSends(e,t,n,s){let i=e,o=Oi(t,n,s),a=await Promise.all(Object.values(this.writes[o]??{}).filter(([u,c])=>c===To).map(async([u,c,l])=>await this.serde.loadsTyped("json",l)));i.channel_values??={},i.channel_values[To]=a,i.channel_versions??={},i.channel_versions[To]=Object.keys(i.channel_versions).length>0?ra(...Object.values(i.channel_versions)):this.getNextVersion(void 0)}async getTuple(e){let t=e.configurable?.thread_id,n=e.configurable?.checkpoint_ns??"",s=kh(e);if(s){let i=this.storage[t]?.[n]?.[s];if(i!==void 0){let[o,a,u]=i,c=Oi(t,n,s),l=await this.serde.loadsTyped("json",o);l.v<4&&u!==void 0&&await this._migratePendingSends(l,t,n,u);let p=await Promise.all(Object.values(this.writes[c]||{}).map(async([f,g,b])=>[f,g,await this.serde.loadsTyped("json",b)])),h={config:e,checkpoint:l,metadata:await this.serde.loadsTyped("json",a),pendingWrites:p};return u!==void 0&&(h.parentConfig={configurable:{thread_id:t,checkpoint_ns:n,checkpoint_id:u}}),h}}else{let i=this.storage[t]?.[n];if(i!==void 0){s=Object.keys(i).sort((g,b)=>b.localeCompare(g))[0];let o=i[s],[a,u,c]=o,l=Oi(t,n,s),p=await this.serde.loadsTyped("json",a);p.v<4&&c!==void 0&&await this._migratePendingSends(p,t,n,c);let h=await Promise.all(Object.values(this.writes[l]||{}).map(async([g,b,_])=>[g,b,await this.serde.loadsTyped("json",_)])),f={config:{configurable:{thread_id:t,checkpoint_id:s,checkpoint_ns:n}},checkpoint:p,metadata:await this.serde.loadsTyped("json",u),pendingWrites:h};return c!==void 0&&(f.parentConfig={configurable:{thread_id:t,checkpoint_ns:n,checkpoint_id:c}}),f}}}async*list(e,t){let{before:n,limit:s,filter:i}=t??{},o=e.configurable?.thread_id?[e.configurable?.thread_id]:Object.keys(this.storage),a=e.configurable?.checkpoint_ns,u=e.configurable?.checkpoint_id;for(let c of o)for(let l of Object.keys(this.storage[c]??{})){if(a!==void 0&&l!==a)continue;let p=this.storage[c]?.[l]??{},h=Object.entries(p).sort((f,g)=>g[0].localeCompare(f[0]));for(let[f,[g,b,_]]of h){if(u&&f!==u||n&&n.configurable?.checkpoint_id&&f>=n.configurable.checkpoint_id)continue;let P=await this.serde.loadsTyped("json",b);if(i&&!Object.entries(i).every(([D,y])=>P[D]===y))continue;if(s!==void 0){if(s<=0)break;s-=1}let v=Oi(c,l,f),S=Object.values(this.writes[v]||{}),C=await Promise.all(S.map(async([D,y,T])=>[D,y,await this.serde.loadsTyped("json",T)])),j=await this.serde.loadsTyped("json",g);j.v<4&&_!==void 0&&await this._migratePendingSends(j,c,l,_);let F={config:{configurable:{thread_id:c,checkpoint_ns:l,checkpoint_id:f}},checkpoint:j,metadata:P,pendingWrites:C};_!==void 0&&(F.parentConfig={configurable:{thread_id:c,checkpoint_ns:l,checkpoint_id:_}}),yield F}}}async put(e,t,n){let s=Wt(t),i=e.configurable?.thread_id,o=e.configurable?.checkpoint_ns??"";if(i===void 0)throw new Error('Failed to put checkpoint. The passed RunnableConfig is missing a required "thread_id" field in its "configurable" property.');this.storage[i]||(this.storage[i]={}),this.storage[i][o]||(this.storage[i][o]={});let[[,a],[,u]]=await Promise.all([this.serde.dumpsTyped(s),this.serde.dumpsTyped(n)]);return this.storage[i][o][t.id]=[a,u,e.configurable?.checkpoint_id],{configurable:{thread_id:i,checkpoint_ns:o,checkpoint_id:t.id}}}async putWrites(e,t,n){let s=e.configurable?.thread_id,i=e.configurable?.checkpoint_ns,o=e.configurable?.checkpoint_id;if(s===void 0)throw new Error('Failed to put writes. The passed RunnableConfig is missing a required "thread_id" field in its "configurable" property');if(o===void 0)throw new Error('Failed to put writes. The passed RunnableConfig is missing a required "checkpoint_id" field in its "configurable" property.');let a=Oi(s,i,o),u=this.writes[a];this.writes[a]===void 0&&(this.writes[a]={}),await Promise.all(t.map(async([c,l],p)=>{let[,h]=await this.serde.dumpsTyped(l),f=[n,na[c]||p],g=`${f[0]},${f[1]}`;f[1]>=0&&u&&g in u||(this.writes[a][g]=[n,c,h])}))}async deleteThread(e){delete this.storage[e];for(let t of Object.keys(this.writes))ty(t).threadId===e&&delete this.writes[t]}};var un=class extends Error{constructor(e){super(e),this.name="InvalidNamespaceError"}};function ry(r){if(r.length===0)throw new un("Namespace cannot be empty.");for(let e of r){if(typeof e!="string")throw new un(`Invalid namespace label '${e}' found in ${r}. Namespace labels must be strings, but got ${typeof e}.`);if(e.includes("."))throw new un(`Invalid namespace label '${e}' found in ${r}. Namespace labels cannot contain periods ('.').`);if(e==="")throw new un(`Namespace labels cannot be empty strings. Got ${e} in ${r}`)}if(r[0]==="langgraph")throw new un(`Root label for namespace cannot be "langgraph". Got: ${r}`)}var os=class{async get(e,t){return(await this.batch([{namespace:e,key:t}]))[0]}async search(e,t={}){let{filter:n,limit:s=10,offset:i=0,query:o}=t;return(await this.batch([{namespacePrefix:e,filter:n,limit:s,offset:i,query:o}]))[0]}async put(e,t,n,s){ry(e),await this.batch([{namespace:e,key:t,value:n,index:s}])}async delete(e,t){await this.batch([{namespace:e,key:t,value:null}])}async listNamespaces(e={}){let{prefix:t,suffix:n,maxDepth:s,limit:i=100,offset:o=0}=e,a=[];return t&&a.push({matchType:"prefix",path:t}),n&&a.push({matchType:"suffix",path:n}),(await this.batch([{matchConditions:a.length?a:void 0,maxDepth:s,limit:i,offset:o}]))[0]}start(){}stop(){}};var ny=r=>"lg_name"in r&&r.lg_name==="AsyncBatchedStore"?r.store:r,Pi=class extends os{constructor(e){super(),Object.defineProperty(this,"lg_name",{enumerable:!0,configurable:!0,writable:!0,value:"AsyncBatchedStore"}),Object.defineProperty(this,"store",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"queue",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"nextKey",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"running",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"processingTask",{enumerable:!0,configurable:!0,writable:!0,value:null}),this.store=ny(e)}get isRunning(){return this.running}async batch(e){throw new Error("The `batch` method is not implemented on `AsyncBatchedStore`.\n Instead, it calls the `batch` method on the wrapped store.\n If you are seeing this error, something is wrong.")}async get(e,t){return this.enqueueOperation({namespace:e,key:t})}async search(e,t){let{filter:n,limit:s=10,offset:i=0,query:o}=t||{};return this.enqueueOperation({namespacePrefix:e,filter:n,limit:s,offset:i,query:o})}async put(e,t,n){return this.enqueueOperation({namespace:e,key:t,value:n})}async delete(e,t){return this.enqueueOperation({namespace:e,key:t,value:null})}start(){this.running||(this.running=!0,this.processingTask=this.processBatchQueue())}async stop(){this.running=!1,this.processingTask&&await this.processingTask}enqueueOperation(e){return new Promise((t,n)=>{let s=this.nextKey;this.nextKey+=1,this.queue.set(s,{operation:e,resolve:t,reject:n})})}async processBatchQueue(){for(;this.running;){if(await new Promise(t=>{setTimeout(t,0)}),this.queue.size===0)continue;let e=new Map(this.queue);this.queue.clear();try{let t=Array.from(e.values()).map(({operation:s})=>s),n=await this.store.batch(t);e.forEach(({resolve:s},i)=>{let o=Array.from(e.keys()).indexOf(i);s(n[o])})}catch(t){e.forEach(({reject:n})=>{n(t)})}}}toJSON(){return{queue:this.queue,nextKey:this.nextKey,running:this.running,store:"[LangGraphStore]"}}};var Ei=class{constructor(e){Object.defineProperty(this,"serde",{enumerable:!0,configurable:!0,writable:!0,value:new ss}),this.serde=e||this.serde}};function gl(r){return r!=null&&r.lg_is_channel===!0}var je=class{constructor(){Object.defineProperty(this,"ValueType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"UpdateType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"lg_is_channel",{enumerable:!0,configurable:!0,writable:!0,value:!0})}consume(){return!1}finish(){return!1}isAvailable(){try{return this.get(),!0}catch(e){if(e.name===se.unminifiable_name)return!1;throw e}}},ml=Symbol.for("LG_IS_ONLY_BASE_CHANNEL");function Ii(r){if(r[ml]===!0)return r;let e={};for(let t in r){if(!Object.prototype.hasOwnProperty.call(r,t))continue;let n=r[t];gl(n)&&(e[t]=n)}return Object.assign(e,{[ml]:!0}),e}function Sr(r,e){let t=Ii(r),n={};for(let s in t){if(!Object.prototype.hasOwnProperty.call(t,s))continue;let i=e.channel_values[s];n[s]=t[s].fromCheckpoint(i)}return Object.assign(n,{[ml]:!0}),n}function _t(r,e,t,n){let s;if(e===void 0)s=r.channel_values;else{s={};for(let o in e)if(Object.prototype.hasOwnProperty.call(e,o))try{s[o]=e[o].checkpoint()}catch(a){if(a.name!==se.unminifiable_name)throw a}}let i={};for(let o in r.versions_seen)Object.prototype.hasOwnProperty.call(r.versions_seen,o)&&(i[o]={...r.versions_seen[o]});return{v:4,id:n?.id??Co(t),ts:new Date().toISOString(),channel_values:s,channel_versions:{...r.channel_versions},versions_seen:i}}var lr=class r extends je{constructor(e,t){super(),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"BinaryOperatorAggregate"}),Object.defineProperty(this,"value",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"operator",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"initialValueFactory",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.operator=e,this.initialValueFactory=t,this.value=t?.()}fromCheckpoint(e){let t=new r(this.operator,this.initialValueFactory);return typeof e<"u"&&(t.value=e),t}update(e){let t=e;if(!t.length)return!1;this.value===void 0&&([this.value]=t,t=t.slice(1));for(let n of t)this.value!==void 0&&(this.value=this.operator(this.value,n));return!0}get(){if(this.value===void 0)throw new se;return this.value}checkpoint(){if(this.value===void 0)throw new se;return this.value}isAvailable(){return this.value!==void 0}};var Ht=class r extends je{constructor(){super(...arguments),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"LastValue"}),Object.defineProperty(this,"value",{enumerable:!0,configurable:!0,writable:!0,value:[]})}fromCheckpoint(e){let t=new r;return typeof e<"u"&&(t.value=[e]),t}update(e){if(e.length===0)return!1;if(e.length!==1)throw new X("LastValue can only receive one value per step.",{lc_error_code:"INVALID_CONCURRENT_GRAPH_UPDATE"});return this.value=[e[e.length-1]],!0}get(){if(this.value.length===0)throw new se;return this.value[0]}checkpoint(){if(this.value.length===0)throw new se;return this.value[0]}isAvailable(){return this.value.length!==0}},sa=class r extends je{constructor(){super(...arguments),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"LastValueAfterFinish"}),Object.defineProperty(this,"value",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"finished",{enumerable:!0,configurable:!0,writable:!0,value:!1})}fromCheckpoint(e){let t=new r;if(typeof e<"u"){let[n,s]=e;t.value=[n],t.finished=s}return t}update(e){return e.length===0?!1:(this.finished=!1,this.value=[e[e.length-1]],!0)}get(){if(this.value.length===0||!this.finished)throw new se;return this.value[0]}checkpoint(){if(this.value.length!==0)return[this.value[0],this.finished]}consume(){return this.finished?(this.finished=!1,this.value=[],!0):!1}finish(){return!this.finished&&this.value.length>0?(this.finished=!0,!0):!1}isAvailable(){return this.value.length!==0&&this.finished}};var ia=class{constructor(e){Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"AnnotationRoot"}),Object.defineProperty(this,"spec",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.spec=e}},lt=function(r){return r?oa(r):new Ht};lt.Root=r=>new ia(r);function oa(r){return typeof r=="object"&&r&&"reducer"in r&&r.reducer?new lr(r.reducer,r.default):typeof r=="object"&&r&&"value"in r&&r.value?new lr(r.value,r.default):new Ht}var pt=ae;var Sh,q="__start__",K="__end__",wt="__input__",Ch="__copy__",ge="__error__",aa="__pregel_ns_writes",pr="__pregel_send",Si="__pregel_call",xt="__pregel_read",de="__pregel_checkpointer",Vt="__pregel_resuming",cn="__pregel_task_id",as="__pregel_stream",sy="__pregel_resume_value",us="__pregel_resume_map",vt="__pregel_scratchpad",cs="__pregel_previous",yl="__pregel_durability",ua="checkpoint_id",At="checkpoint_ns",Th="__pregel_node_finished",Be="checkpoint_map",_l="__pregel_abort_signals",V="__interrupt__",Me="__resume__",Ci="__no_writes__",Ot="__return__",ln="__previous__";var ee="langsmith:hidden",Rh="langsmith:nostream",wl="__self__",De="__pregel_tasks",$e="__pregel_push",Ti="__pregel_pull";var Le="00000000-0000-0000-0000-000000000000",Nh=[ee,wt,V,Me,ge,Ci,pr,xt,de,yl,as,Vt,cn,Si,sy,vt,cs,Be,At,ua],le="|",Ke=":",iy=Symbol.for("langgraph.command"),bl=class{constructor(){Object.defineProperty(this,Sh,{enumerable:!0,configurable:!0,writable:!0,value:void 0})}};Sh=iy;function ca(r){let e=r;return e!=null&&typeof e.node=="string"&&e.args!==void 0}var Cr=class{constructor(e,t){Object.defineProperty(this,"lg_name",{enumerable:!0,configurable:!0,writable:!0,value:"Send"}),Object.defineProperty(this,"node",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"args",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.node=e,this.args=ki(t)}toJSON(){return{lg_name:this.lg_name,node:this.node,args:this.args}}};function Ee(r){return r instanceof Cr}function xl(r){return!r||typeof r!="object"||!(V in r)?!1:Array.isArray(r[V])}var Ce=class extends bl{constructor(e){super(),Object.defineProperty(this,"lg_name",{enumerable:!0,configurable:!0,writable:!0,value:"Command"}),Object.defineProperty(this,"lc_direct_tool_output",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"graph",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"update",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"resume",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"goto",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.resume=e.resume,this.graph=e.graph,this.update=e.update,e.goto&&(this.goto=Array.isArray(e.goto)?ki(e.goto):[ki(e.goto)])}_updateAsTuples(){return this.update&&typeof this.update=="object"&&!Array.isArray(this.update)?Object.entries(this.update):Array.isArray(this.update)&&this.update.every(e=>Array.isArray(e)&&e.length===2&&typeof e[0]=="string")?this.update:[["__root__",this.update]]}toJSON(){let e;return typeof this.goto=="string"?e=this.goto:Ee(this.goto)?e=this.goto.toJSON():e=this.goto?.map(t=>typeof t=="string"?t:t.toJSON()),{lg_name:this.lg_name,update:this.update,resume:this.resume,goto:e}}};Object.defineProperty(Ce,"PARENT",{enumerable:!0,configurable:!0,writable:!0,value:"__parent__"});function Te(r){return typeof r!="object"||r==null?!1:"lg_name"in r&&r.lg_name==="Command"}function ki(r,e=new Map){if(r!=null&&typeof r=="object"){if(e.has(r))return e.get(r);let t;if(Array.isArray(r))t=[],e.set(r,t),r.forEach((n,s)=>{t[s]=ki(n,e)});else if(Te(r)&&!(r instanceof Ce))t=new Ce(r),e.set(r,t);else if(ca(r)&&!(r instanceof Cr))t=new Cr(r.node,r.args),e.set(r,t);else if(Te(r)||Ee(r))t=r,e.set(r,t);else if("lc_serializable"in r&&r.lc_serializable)t=r,e.set(r,t);else{t={},e.set(r,t);for(let[n,s]of Object.entries(r))t[n]=ki(s,e)}return t}return r}var oy=["tags","metadata","callbacks","configurable"],ay=["tags","metadata","callbacks","runName","maxConcurrency","recursionLimit","configurable","runId","outputKeys","streamMode","store","writer","context","interruptBefore","interruptAfter","checkpointDuring","durability","signal"],uy=25;function la(...r){let e={tags:[],metadata:{},callbacks:void 0,recursionLimit:uy,configurable:{}},t=Ye.getRunnableConfig();if(t!==void 0){for(let[n,s]of Object.entries(t))if(s!==void 0)if(oy.includes(n)){let i;Array.isArray(s)?i=[...s]:typeof s=="object"?n==="callbacks"&&"copy"in s&&typeof s.copy=="function"?i=s.copy():i={...s}:i=s,e[n]=i}else e[n]=s}for(let n of r)if(n!==void 0)for(let[s,i]of Object.entries(n))i!==void 0&&ay.includes(s)&&(e[s]=i);for(let[n,s]of Object.entries(e.configurable))e.metadata=e.metadata??{},!n.startsWith("__")&&(typeof s=="string"||typeof s=="number"||typeof s=="boolean")&&!(n in e.metadata)&&(e.metadata[n]=s);return e}function jh(){return Ye.getRunnableConfig()}function pa(r){return r.split(le).filter(e=>!e.match(/^\d+$/)).map(e=>e.split(Ke)[0]).join(le)}function Mh(r){let e=r.split(le);for(;e.length>1&&e[e.length-1].match(/^\d+$/);)e.pop();return e.slice(0,-1).join(le)}var Ie=class extends Z{constructor(e){super(),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langgraph"]}),Object.defineProperty(this,"func",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"config",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"trace",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"recurse",{enumerable:!0,configurable:!0,writable:!0,value:!0}),this.name=e.name??e.func.name,this.func=e.func,this.config=e.tags?{tags:e.tags}:void 0,this.trace=e.trace??this.trace,this.recurse=e.recurse??this.recurse}async _tracedInvoke(e,t,n){return new Promise((s,i)=>{let o=he(t,{callbacks:n?.getChild()});Ye.runWithConfig(o,async()=>{try{let a=await this.func(e,o);s(a)}catch(a){i(a)}})})}async invoke(e,t){let n,s=la(t),i=ze(this.config,s);return this.trace?n=await this._callWithConfig(this._tracedInvoke,e,i):n=await Ye.runWithConfig(i,async()=>this.func(e,i)),Z.isRunnable(n)&&this.recurse?await Ye.runWithConfig(i,async()=>n.invoke(e,i)):n}};function*fr(r,e){if(e===void 0)yield*r;else for(let t of r)yield[e,t]}async function Pt(r){let e=[];for await(let t of await r)e.push(t);return e}function pn(r){let e=[];for(let t of r)e.push(t);return e}function fn(r,e){return r?"configurable"in r?{...r,configurable:{...r.configurable,...e}}:{...r,configurable:e}:{configurable:e}}function Dh(r){return r!=null&&typeof r=="function"&&r instanceof Object.getPrototypeOf(async function*(){}).constructor}function $h(r){return r!=null&&typeof r=="function"&&r instanceof Object.getPrototypeOf(function*(){}).constructor}var uP={[Symbol.for("LG_SKIP_WRITE")]:!0};function cy(r){return typeof r=="object"&&r?.[Symbol.for("LG_SKIP_WRITE")]!==void 0}var Je={[Symbol.for("LG_PASSTHROUGH")]:!0};function fa(r){return typeof r=="object"&&r?.[Symbol.for("LG_PASSTHROUGH")]!==void 0}var vl=Symbol("IS_WRITER"),ue=class r extends Ie{constructor(e,t){let n=`ChannelWrite<${e.map(s=>Ee(s)?s.node:"channel"in s?s.channel:"...").join(",")}>`;super({writes:e,name:n,tags:t,func:async(s,i)=>this._write(s,i??{})}),Object.defineProperty(this,"writes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.writes=e}async _write(e,t){let n=this.writes.map(s=>Al(s)&&fa(s.value)?{mapper:s.mapper,value:e}:ha(s)&&fa(s.value)?{channel:s.channel,value:e,skipNone:s.skipNone,mapper:s.mapper}:s);return await r.doWrite(t,n),e}static async doWrite(e,t){for(let i of t){if(ha(i)){if(i.channel===De)throw new X("Cannot write to the reserved channel TASKS");if(fa(i.value))throw new X("PASSTHROUGH value must be replaced")}if(Al(i)&&fa(i.value))throw new X("PASSTHROUGH value must be replaced")}let n=[];for(let i of t)if(Ee(i))n.push([De,i]);else if(Al(i)){let o=await i.mapper.invoke(i.value,e);o!=null&&o.length>0&&n.push(...o)}else if(ha(i)){let o=i.mapper!==void 0?await i.mapper.invoke(i.value,e):i.value;if(cy(o)||i.skipNone&&o===void 0)continue;n.push([i.channel,o])}else throw new Error(`Invalid write entry: ${JSON.stringify(i)}`);let s=e.configurable?.[pr];s(n)}static isWriter(e){return e instanceof r||vl in e&&!!e[vl]}static registerWriter(e){return Object.defineProperty(e,vl,{value:!0})}};function ha(r){return r!==void 0&&typeof r.channel=="string"}function Al(r){return r!==void 0&&!ha(r)&&Z.isRunnable(r.mapper)}var da=class r extends Ie{constructor(e,t,n=!1){super({func:(s,i)=>r.doRead(i,this.channel,this.fresh,this.mapper)}),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"ChannelRead"}),Object.defineProperty(this,"channel",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"fresh",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"mapper",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.fresh=n,this.mapper=t,this.channel=e,this.name=Array.isArray(e)?`ChannelRead<${e.join(",")}>`:`ChannelRead<${e}>`}static doRead(e,t,n,s){let i=e.configurable?.[xt];if(!i)throw new Error("Runnable is not configured with a read function. Make sure to call in the context of a Pregel process");return s?s(i(t,n)):i(t,n)}},ls=new Ge,et=class r extends Ar{constructor(e){let{channels:t,triggers:n,mapper:s,writers:i,bound:o,kwargs:a,metadata:u,retryPolicy:c,cachePolicy:l,tags:p,subgraphs:h,ends:f}=e,g=[...e.config?.tags?e.config.tags:[],...p??[]];super({...e,bound:e.bound??ls,config:{...e.config?e.config:{},tags:g}}),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"PregelNode"}),Object.defineProperty(this,"channels",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"triggers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"mapper",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"writers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"bound",{enumerable:!0,configurable:!0,writable:!0,value:ls}),Object.defineProperty(this,"kwargs",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"metadata",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"retryPolicy",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cachePolicy",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"subgraphs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"ends",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.channels=t,this.triggers=n,this.mapper=s,this.writers=i??this.writers,this.bound=o??this.bound,this.kwargs=a??this.kwargs,this.metadata=u??this.metadata,this.tags=g,this.retryPolicy=c,this.cachePolicy=l,this.subgraphs=h,this.ends=f}getWriters(){let e=[...this.writers];for(;e.length>1&&e[e.length-1]instanceof ue&&e[e.length-2]instanceof ue;){let t=e.slice(-2),n=t[0].writes.concat(t[1].writes);e[e.length-2]=new ue(n,t[0].config?.tags),e.pop()}return e}getNode(){let e=this.getWriters();if(!(this.bound===ls&&e.length===0))return this.bound===ls&&e.length===1?e[0]:this.bound===ls?new Qe({first:e[0],middle:e.slice(1,e.length-1),last:e[e.length-1],omitSequenceTags:!0}):e.length>0?new Qe({first:this.bound,middle:e.slice(0,e.length-1),last:e[e.length-1],omitSequenceTags:!0}):this.bound}join(e){if(!Array.isArray(e))throw new Error("channels must be a list");if(typeof this.channels!="object")throw new Error("all channels must be named when using .join()");return new r({channels:{...this.channels,...Object.fromEntries(e.map(t=>[t,t]))},triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:this.bound,kwargs:this.kwargs,config:this.config,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy})}pipe(e){return ue.isWriter(e)?new r({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:[...this.writers,e],bound:this.bound,config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy}):this.bound===ls?new r({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:Ne(e),config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy}):new r({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:this.bound.pipe(e),config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy})}};var k=r=>BigInt(r),ie=(r,e=0)=>new DataView(r.buffer,r.byteOffset+e,r.byteLength-e),zh=k("0x9E3779B1"),Bh=k("0x85EBCA77"),ly=k("0xC2B2AE3D"),Tr=k("0x9E3779B185EBCA87"),hn=k("0xC2B2AE3D27D4EB4F"),Kh=k("0x165667B19E3779F9"),El=k("0x85EBCA77C2B2AE63"),py=k("0x27D4EB2F165667C5"),fy=k("0x165667919E3779F9"),hy=k("0x9FB21C651E98DF25"),dy=r=>{let e=r.length;if(e%2!==0)throw new Error("String should have an even number of characters");let t=e/2,n=new Uint8Array(t),s=0,i=0;for(;i<t;){let o=r.slice(s,s+=2);n[i]=Number.parseInt(o,16),i+=1}return ie(n)},Gt=dy("b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e"),ps=(k(1)<<k(128))-k(1),G=(k(1)<<k(64))-k(1),ya=(k(1)<<k(32))-k(1),hr=64,Wh=hr/8,my=8,ma=4;function fs(r){if(!r)throw new Error("Assert failed")}function gy(r){let e=new DataView(new ArrayBuffer(8));return e.setBigUint64(0,r,!0),e.getBigUint64(0,!1)}function by(r){let e=r;return e=(e&k(65535))<<k(16)|(e&k(4294901760))>>k(16),e=(e&k(16711935))<<k(8)|(e&k(4278255360))>>k(8),e}function yy(r,e){return(r&ya)*(e&ya)&G}function _y(r,e){return(r<<e|r>>k(32)-e)&ya}function Hh(r,e,t){for(let n=0;n<Wh;n+=1){let s=e.getBigUint64(n*8,!0),i=s^t.getBigUint64(n*8,!0);r[n^1]+=s,r[n]+=yy(i,i>>k(32))}return r}function Lh(r,e,t,n){for(let s=0;s<n;s+=1)Hh(r,ie(e,s*hr),ie(t,s*8));return r}function wy(r,e){for(let t=0;t<Wh;t+=1){let n=e.getBigUint64(t*8,!0),s=r[t];s=Ol(s,k(47)),s^=n,s*=zh,r[t]=s&G}return r}function ga(r,e){return Vh(r[0]^e.getBigUint64(0,!0),r[1]^e.getBigUint64(my,!0))}function Fh(r,e,t){let n=t;return n+=ga(r.slice(0),ie(e,0*ma)),n+=ga(r.slice(2),ie(e,4*ma)),n+=ga(r.slice(4),ie(e,8*ma)),n+=ga(r.slice(6),ie(e,12*ma)),qt(n&G)}function xy(r,e,t,n,s){let i=r,o=Math.floor((t.byteLength-hr)/8),a=hr*o,u=Math.floor((e.byteLength-1)/a);for(let c=0;c<u;c+=1)i=Lh(i,ie(e,c*a),t,o),i=s(i,ie(t,t.byteLength-hr));{let c=Math.floor((e.byteLength-1-a*u)/hr);i=Lh(i,ie(e,u*a),t,c),i=n(i,ie(e,e.byteLength-hr),ie(t,t.byteLength-hr-7))}return i}function vy(r,e){let t=new BigUint64Array([ly,Tr,hn,Kh,El,Bh,py,zh]);fs(r.byteLength>128),t=xy(t,r,e,Hh,wy),fs(t.length*8===64);{let n=Fh(t,ie(e,11),k(r.byteLength)*Tr&G);return Fh(t,ie(e,e.byteLength-hr-11),~(k(r.byteLength)*hn)&G)<<k(64)|n}}function Vh(r,e){let t=r*e&ps;return t&G^t>>k(64)}function Uh(r,e,t){return Vh((r.getBigUint64(0,!0)^e.getBigUint64(0,!0)+t)&G,(r.getBigUint64(8,!0)^e.getBigUint64(8,!0)-t)&G)}function ba(r,e,t,n,s){let i=r&G,o=r>>k(64)&G;return i+=Uh(e,n,s),i^=t.getBigUint64(0,!0)+t.getBigUint64(8,!0),i&=G,o+=Uh(t,ie(n,16),s),o^=e.getBigUint64(0,!0)+e.getBigUint64(8,!0),o&=G,o<<k(64)|i}function qt(r){let e=r;return e^=e>>k(37),e*=fy,e&=G,e^=e>>k(32),e}function _a(r){let e=r;return e^=e>>k(33),e*=hn,e&=G,e^=e>>k(29),e*=Kh,e&=G,e^=e>>k(32),e}function Ay(r,e,t){let n=r.byteLength;fs(n>0&&n<=3);let s=k(r.getUint8(n-1))|k(n<<8)|k(r.getUint8(0)<<16)|k(r.getUint8(n>>1)<<24),i=(k(e.getUint32(0,!0))^k(e.getUint32(4,!0)))+t,o=(s^i)&G,a=(k(e.getUint32(8,!0))^k(e.getUint32(12,!0)))-t,u=(_y(by(s),k(13))^a)&G;return(_a(u)&G)<<k(64)|_a(o)}function Ol(r,e){return r^r>>e}function Oy(r,e,t){let n=r.byteLength;fs(n>=4&&n<=8);{let s=r.getUint32(0,!0),i=r.getUint32(n-4,!0),o=k(s)|k(i)<<k(32),a=(e.getBigUint64(16,!0)^e.getBigUint64(24,!0))+t&G,c=(o^a)*(Tr+(k(n)<<k(2)))&ps;return c+=(c&G)<<k(65),c&=ps,c^=c>>k(67),Ol(Ol(c&G,k(35))*hy&G,k(28))|qt(c>>k(64))<<k(64)}}function Py(r,e,t){let n=r.byteLength;fs(n>=9&&n<=16);{let s=(e.getBigUint64(32,!0)^e.getBigUint64(40,!0))+t&G,i=(e.getBigUint64(48,!0)^e.getBigUint64(56,!0))-t&G,o=r.getBigUint64(0,!0),a=r.getBigUint64(n-8,!0),u=(o^a^s)*Tr,c=(u&G)+(k(n-1)<<k(54));u=u&(ps^G)|c,a^=i,u+=a+(a&ya)*(Bh-k(1))<<k(64),u&=ps,u^=gy(u>>k(64));let l=(u&G)*hn;return l+=(u>>k(64))*hn<<k(64),l&=ps,qt(l&G)|qt(l>>k(64))<<k(64)}}function Ey(r,e){let t=r.byteLength;return fs(t<=16),t>8?Py(r,Gt,e):t>=4?Oy(r,Gt,e):t>0?Ay(r,Gt,e):_a(e^Gt.getBigUint64(64,!0)^Gt.getBigUint64(72,!0))|_a(e^Gt.getBigUint64(80,!0)^Gt.getBigUint64(88,!0))<<k(64)}function Pl(r){return~r+k(1)&G}function Iy(r,e,t){let n=k(r.byteLength)*Tr&G,s=k(r.byteLength-1)/k(32);for(;s>=0;){let a=Number(s);n=ba(n,ie(r,16*a),ie(r,r.byteLength-16*(a+1)),ie(e,32*a),t),s-=k(1)}let i=n+(n>>k(64))&G;i=qt(i);let o=(n&G)*Tr+(n>>k(64))*El+(k(r.byteLength)-t&G)*hn;return o&=G,o=Pl(qt(o)),i|o<<k(64)}function ky(r,e,t){let n=k(r.byteLength)*Tr&G;for(let o=32;o<160;o+=32)n=ba(n,ie(r,o-32),ie(r,o-16),ie(e,o-32),t);n=qt(n&G)|qt(n>>k(64))<<k(64);for(let o=160;o<=r.byteLength;o+=32)n=ba(n,ie(r,o-32),ie(r,o-16),ie(e,3+o-160),t);n=ba(n,ie(r,r.byteLength-16),ie(r,r.byteLength-32),ie(e,103),Pl(t));let s=n+(n>>k(64))&G;s=qt(s);let i=(n&G)*Tr+(n>>k(64))*El+(k(r.byteLength)-t&G)*hn;return i&=G,i=Pl(qt(i)),s|i<<k(64)}function dn(r,e=k(0)){let t=new TextEncoder,n=ie(typeof r=="string"?t.encode(r):r),s=n.byteLength,i=o=>o.toString(16).padStart(32,"0");return s<=16?i(Ey(n,e)):s<=128?i(Iy(n,Gt,e)):s<=240?i(ky(n,Gt,e)):i(vy(n,Gt))}function wa(r){return/^[0-9a-f]{32}$/.test(r)}function mn(r,e,t=!0,n=!1){try{return r[e].get()}catch(s){if(s.name===se.unminifiable_name){if(n)return s;if(t)return null}throw s}}function Et(r,e,t=!0){if(Array.isArray(e)){let n={};for(let s of e)try{n[s]=mn(r,s,!t)}catch(i){if(i.name===se.unminifiable_name)continue}return n}else return mn(r,e)}function*Gh(r,e){if(r.graph===Ce.PARENT)throw new X("There is no parent graph.");if(r.goto){let t;Array.isArray(r.goto)?t=r.goto:t=[r.goto];for(let n of t)if(Ee(n))yield[Le,De,n];else if(typeof n=="string")yield[Le,`branch:to:${n}`,"__start__"];else throw new Error(`In Command.send, expected Send or string, got ${typeof n}`)}if(r.resume)if(typeof r.resume=="object"&&Object.keys(r.resume).length&&Object.keys(r.resume).every(wa))for(let[t,n]of Object.entries(r.resume)){let s=e.filter(i=>i[0]===t&&i[1]===Me).map(i=>i[2]).slice(0,1)??[];s.push(n),yield[t,Me,s]}else yield[Le,Me,r.resume];if(r.update){if(typeof r.update!="object"||!r.update)throw new Error("Expected cmd.update to be a dict mapping channel names to update values");if(Array.isArray(r.update))for(let[t,n]of r.update)yield[Le,t,n];else for(let[t,n]of Object.entries(r.update))yield[Le,t,n]}}function*xa(r,e){if(e!=null)if(Array.isArray(r)&&typeof e=="object"&&!Array.isArray(e))for(let t in e)r.includes(t)&&(yield[t,e[t]]);else{if(Array.isArray(r))throw new Error('Input chunk must be an object when "inputChannels" is an array');yield[r,e]}}function*va(r,e,t){Array.isArray(r)?(e===!0||e.find(([n,s])=>r.includes(n)))&&(yield Et(t,r)):(e===!0||e.some(([n,s])=>n===r))&&(yield mn(t,r))}function*qh(r,e,t){let n=e.filter(([a,u])=>(a.config===void 0||!a.config.tags?.includes(ee))&&u[0][0]!==ge&&u[0][0]!==V);if(!n.length)return;let s;n.some(([a])=>a.writes.some(([u,c])=>u===Ot))?s=n.flatMap(([a])=>a.writes.filter(([u,c])=>u===Ot).map(([u,c])=>[a.name,c])):Array.isArray(r)?s=n.flatMap(([a])=>{let{writes:u}=a,c={};for(let[l]of u)r.includes(l)&&(c[l]=(c[l]||0)+1);return Object.values(c).some(l=>l>1)?u.filter(([l])=>r.includes(l)).map(([l,p])=>[a.name,{[l]:p}]):[[a.name,Object.fromEntries(u.filter(([l])=>r.includes(l)))]]}):s=n.flatMap(([a])=>a.writes.filter(([u,c])=>u===r).map(([u,c])=>[a.name,c]));let i={};for(let[a,u]of s)a in i||(i[a]=[]),i[a].push(u);let o={};for(let a in i)if(i[a].length===1){let[u]=i[a];o[a]=u}else o[a]=i[a];t&&(o.__metadata__={cached:t}),yield o}var Aa=class{constructor({func:e,name:t,input:n,retry:s,cache:i,callbacks:o}){Object.defineProperty(this,"func",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"input",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"retry",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"callbacks",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"__lg_type",{enumerable:!0,configurable:!0,writable:!0,value:"call"}),this.func=e,this.name=t,this.input=n,this.retry=s,this.cache=i,this.callbacks=o}};function Jh(r){return typeof r=="object"&&r!==null&&"__lg_type"in r&&r.__lg_type==="call"}function Oa(r){let e=typeof r[q];if(e==="number")return 0;if(e==="string")return"";for(let t in r){if(!Object.prototype.hasOwnProperty.call(r,t))continue;let n=typeof r[t];if(n==="number")return 0;if(n==="string")return"";break}}function hs(r,e){if(Object.keys(r).length>0){let t=Oa(e);return Object.fromEntries(Object.entries(e).filter(([n,s])=>s>(r[n]??t)))}else return e}function Xh(r,e){return r&&!Array.isArray(r)&&!(r instanceof Date)&&typeof r=="object"?r:{[e]:r}}function Xe(r,e){return r===null?{configurable:e}:r?.configurable===void 0?{...r,configurable:e}:{...r,configurable:{...r.configurable,...e}}}function Rr(r,e){let t=e?.parents??{};return Object.keys(t).length>0?Xe(r,{[Be]:{...t,[r.configurable?.checkpoint_ns??""]:r.configurable?.checkpoint_id}}):r}function ds(...r){let e=[...new Set(r.filter(Boolean))];if(e.length===0)return{signal:void 0,dispose:void 0};if(e.length===1)return{signal:e[0],dispose:void 0};let t=new AbortController,n=()=>{let i=e.find(o=>o.aborted)?.reason;t.abort(i),e.forEach(o=>o.removeEventListener("abort",n))};e.forEach(i=>i.addEventListener("abort",n,{once:!0}));let s=e.find(i=>i.aborted);return s&&t.abort(s.reason),{signal:t.signal,dispose:()=>{e.forEach(i=>i.removeEventListener("abort",n))}}}var Yh=(r,e)=>{if(!(!r&&!e))return r?e?Array.isArray(r)&&Array.isArray(e)?[...r,...e]:Array.isArray(r)?[...r,e]:Array.isArray(e)?[r,...e]:[r,e]:r:e};function Zh(r,e){let t=new Ie({func:n=>e(...n),name:r,trace:!1,recurse:!1});return new Qe({name:r,first:t,last:new ue([{channel:Ot,value:Je}],[ee])})}function Qh(r,e){return new Ie({func:(n,s)=>e(n,s),name:r,trace:!1,recurse:!1})}var td=r=>r!==void 0?r+1:1;function ed(r){let e;for(let t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e==null?e=r[t]:e=ra(e,r[t]));return e}function Ni(r,e,t){let n=Oa(r.channel_versions),s=r.versions_seen[V]??{},i=!1;for(let a in r.channel_versions)if(Object.prototype.hasOwnProperty.call(r.channel_versions,a)&&r.channel_versions[a]>(s[a]??n)){i=!0;break}let o=t.some(a=>e==="*"?!a.config?.tags?.includes(ee):e.includes(a.name));return i&&o}function Ri(r,e,t,n,s=!1){let i=new Set;if(Array.isArray(n))i=new Set(n.filter(a=>t.writes.some(([u,c])=>u===a)));else{for(let[a]of t.writes)if(a===n){i=new Set([a]);break}i=i||new Set}let o;if(s&&i.size>0){let a=Object.fromEntries(Object.entries(e).filter(([l,p])=>i.has(l))),u=_t(r,a,-1),c=Sr(a,u);We(Wt(u),c,[t],void 0,void 0),o=Et({...e,...c},n)}else o=Et(e,n);return o}function Il(r,e,t){for(let[n,s]of t)if([$e,De].includes(n)&&s!=null){if(!Ee(s))throw new X(`Invalid packet type, expected SendProtocol, got ${JSON.stringify(s)}`);if(!(s.node in e))throw new X(`Invalid node name "${s.node}" in Send packet`)}r(t)}var Sy=new Set([Ci,$e,Me,V,Ot,ge]);function We(r,e,t,n,s){t.sort((p,h)=>{let f=p.path?.slice(0,3)||[],g=h.path?.slice(0,3)||[];for(let b=0;b<Math.min(f.length,g.length);b+=1){if(f[b]<g[b])return-1;if(f[b]>g[b])return 1}return f.length-g.length});let i=t.some(p=>p.triggers.length>0),o=Ii(e);for(let p of t){r.versions_seen[p.name]??={};for(let h of p.triggers)h in r.channel_versions&&(r.versions_seen[p.name][h]=r.channel_versions[h])}let a=ed(r.channel_versions),u=new Set(t.flatMap(p=>p.triggers).filter(p=>!Nh.includes(p)));for(let p of u)p in o&&o[p].consume()&&n!==void 0&&(r.channel_versions[p]=n(a));let c={};for(let p of t)for(let[h,f]of p.writes)Sy.has(h)||h in o&&(c[h]??=[],c[h].push(f));a=ed(r.channel_versions);let l=new Set;for(let[p,h]of Object.entries(c))if(p in o){let f=o[p],g;try{g=f.update(h)}catch(b){if(b.name===X.unminifiable_name){let _=new X(`Invalid update for channel "${p}" with values ${JSON.stringify(h)}: ${b.message}`);throw _.lc_error_code=b.lc_error_code,_}else throw b}g&&n!==void 0&&(r.channel_versions[p]=n(a),f.isAvailable()&&l.add(p))}if(i)for(let p in o){if(!Object.prototype.hasOwnProperty.call(o,p))continue;let h=o[p];h.isAvailable()&&!l.has(p)&&h.update([])&&n!==void 0&&(r.channel_versions[p]=n(a),h.isAvailable()&&l.add(p))}if(i&&!Object.keys(s??{}).some(p=>l.has(p)))for(let p in o){if(!Object.prototype.hasOwnProperty.call(o,p))continue;let h=o[p];h.finish()&&n!==void 0&&(r.channel_versions[p]=n(a),h.isAvailable()&&l.add(p))}}function Nr(r,e,t,n,s,i,o){let a={},u=n[De];if(u?.isAvailable()){let c=u.get().length;for(let l=0;l<c;l+=1){let p=Pa([$e,l],r,e,t,n,s,i,o);p!==void 0&&(a[p.id]=p)}}for(let c in t){if(!Object.prototype.hasOwnProperty.call(t,c))continue;let l=Pa([Ti,c],r,e,t,n,s,i,o);l!==void 0&&(a[l.id]=l)}return a}function Pa(r,e,t,n,s,i,o,a){let{step:u,checkpointer:c,manager:l}=a,p=i.configurable??{},h=p.checkpoint_ns??"";if(r[0]===$e&&Jh(r[r.length-1])){let f=r[r.length-1],g=Zh(f.name,f.func),b=[$e],_=h===""?f.name:`${h}${le}${f.name}`,P=Er(JSON.stringify([_,u.toString(),f.name,$e,r[1],r[2]]),e.id),v=`${_}${Ke}${P}`,S=[...r.slice(0,3),!0],C={langgraph_step:u,langgraph_node:f.name,langgraph_triggers:b,langgraph_path:S,langgraph_checkpoint_ns:v};if(o){let j=[];return{name:f.name,input:f.input,proc:g,writes:j,config:he(ze(i,{metadata:C,store:a.store??i.store}),{runName:f.name,callbacks:l?.getChild(`graph:step:${u}`),configurable:{[cn]:P,[pr]:D=>Il(y=>j.push(...y),n,D),[xt]:(D,y=!1)=>Ri(e,s,{name:f.name,writes:j,triggers:b,path:S},D,y),[de]:c??p[de],[Be]:{...p[Be],[h]:e.id},[vt]:kl({pendingWrites:t??[],taskId:P,currentTaskInput:f.input,resumeMap:i.configurable?.[us],namespaceHash:dn(v)}),[cs]:e.channel_values[ln],checkpoint_id:void 0,checkpoint_ns:v}}),triggers:b,retry_policy:f.retry,cache_key:f.cache?{key:dn((f.cache.keyFunc??JSON.stringify)([f.input])),ns:[aa,f.name??"__dynamic__"],ttl:f.cache.ttl}:void 0,id:P,path:S,writers:[]}}else return{id:P,name:f.name,interrupts:[],path:S}}else if(r[0]===$e){let f=typeof r[1]=="number"?r[1]:parseInt(r[1],10);if(!s[De]?.isAvailable())return;let g=s[De].get();if(f<0||f>=g.length)return;let b=ca(g[f])&&!Ee(g[f])?new Cr(g[f].node,g[f].args):g[f];if(!ca(b)){console.warn(`Ignoring invalid packet ${JSON.stringify(b)} in pending sends.`);return}if(!(b.node in n)){console.warn(`Ignoring unknown node name ${b.node} in pending sends.`);return}let _=[$e],P=h===""?b.node:`${h}${le}${b.node}`,v=Er(JSON.stringify([P,u.toString(),b.node,$e,f.toString()]),e.id),S=`${P}${Ke}${v}`,C={langgraph_step:u,langgraph_node:b.node,langgraph_triggers:_,langgraph_path:r.slice(0,3),langgraph_checkpoint_ns:S};if(o){let j=n[b.node],F=j.getNode();if(F!==void 0){j.metadata!==void 0&&(C={...C,...j.metadata});let D=[];return{name:b.node,input:b.args,proc:F,subgraphs:j.subgraphs,writes:D,config:he(ze(i,{metadata:C,tags:j.tags,store:a.store??i.store}),{runName:b.node,callbacks:l?.getChild(`graph:step:${u}`),configurable:{[cn]:v,[pr]:y=>Il(T=>D.push(...T),n,y),[xt]:(y,T=!1)=>Ri(e,s,{name:b.node,writes:D,triggers:_,path:r},y,T),[de]:c??p[de],[Be]:{...p[Be],[h]:e.id},[vt]:kl({pendingWrites:t??[],taskId:v,currentTaskInput:b.args,resumeMap:i.configurable?.[us],namespaceHash:dn(S)}),[cs]:e.channel_values[ln],checkpoint_id:void 0,checkpoint_ns:S}}),triggers:_,retry_policy:j.retryPolicy,cache_key:j.cachePolicy?{key:dn((j.cachePolicy.keyFunc??JSON.stringify)([b.args])),ns:[aa,j.name??"__dynamic__",b.node],ttl:j.cachePolicy.ttl}:void 0,id:v,path:r,writers:j.getWriters()}}}else return{id:v,name:b.node,interrupts:[],path:r}}else if(r[0]===Ti){let f=r[1].toString(),g=n[f];if(g===void 0)return;if(t?.length){let v=h===""?f:`${h}${le}${f}`,S=Er(JSON.stringify([v,u.toString(),f,Ti,f]),e.id);if(t.some(j=>j[0]===S&&j[1]!==ge))return}let b=Oa(e.channel_versions);if(b===void 0)return;let _=e.versions_seen[f]??{},P=g.triggers.find(v=>s[v].isAvailable()?(e.channel_versions[v]??b)>(_[v]??b):!1);if(P!==void 0){let v=Cy(g,s,o);if(v===void 0)return;let S=h===""?f:`${h}${le}${f}`,C=Er(JSON.stringify([S,u.toString(),f,Ti,[P]]),e.id),j=`${S}${Ke}${C}`,F={langgraph_step:u,langgraph_node:f,langgraph_triggers:[P],langgraph_path:r,langgraph_checkpoint_ns:j};if(o){let D=g.getNode();if(D!==void 0){g.metadata!==void 0&&(F={...F,...g.metadata});let y=[];return{name:f,input:v,proc:D,subgraphs:g.subgraphs,writes:y,config:he(ze(i,{metadata:F,tags:g.tags,store:a.store??i.store}),{runName:f,callbacks:l?.getChild(`graph:step:${u}`),configurable:{[cn]:C,[pr]:T=>Il($=>{y.push(...$)},n,T),[xt]:(T,$=!1)=>Ri(e,s,{name:f,writes:y,triggers:[P],path:r},T,$),[de]:c??p[de],[Be]:{...p[Be],[h]:e.id},[vt]:kl({pendingWrites:t??[],taskId:C,currentTaskInput:v,resumeMap:i.configurable?.[us],namespaceHash:dn(j)}),[cs]:e.channel_values[ln],checkpoint_id:void 0,checkpoint_ns:j}}),triggers:[P],retry_policy:g.retryPolicy,cache_key:g.cachePolicy?{key:dn((g.cachePolicy.keyFunc??JSON.stringify)([v])),ns:[aa,g.name??"__dynamic__",f],ttl:g.cachePolicy.ttl}:void 0,id:C,path:r,writers:g.getWriters()}}}else return{id:C,name:f,interrupts:[],path:r}}}}function Cy(r,e,t){let n;if(typeof r.channels=="object"&&!Array.isArray(r.channels)){n={};for(let[s,i]of Object.entries(r.channels))if(r.triggers.includes(i))try{n[s]=mn(e,i,!1)}catch(o){if(o.name===se.unminifiable_name)return;throw o}else if(i in e)try{n[s]=mn(e,i,!1)}catch(o){if(o.name===se.unminifiable_name)continue;throw o}}else if(Array.isArray(r.channels)){let s=!1;for(let i of r.channels)try{n=mn(e,i,!1),s=!0;break}catch(o){if(o.name===se.unminifiable_name)continue;throw o}if(!s)return}else throw new Error(`Invalid channels type, expected list or dict, got ${r.channels}`);return t&&r.mapper!==void 0&&(n=r.mapper(n)),n}function kl({pendingWrites:r,taskId:e,currentTaskInput:t,resumeMap:n,namespaceHash:s}){let i=r.find(([u,c])=>u===Le&&c===Me)?.[2],a={callCounter:0,interruptCounter:-1,resume:(()=>{let u=r.filter(([c,l])=>c===e&&l===Me).flatMap(([c,l,p])=>p);if(n!=null&&s in n){let c=n[s];u.push(c)}return u})(),nullResume:i,subgraphCounter:0,currentTaskInput:t,consumeNullResume:()=>{if(a.nullResume)return delete a.nullResume,r.splice(r.findIndex(([u,c])=>u===Le&&c===Me),1),i}};return a}function Ty(r){return"steps"in r&&Array.isArray(r.steps)}function ji(r){return"lg_is_pregel"in r&&r.lg_is_pregel===!0}function Ea(r){let e=[r];for(let t of e){if(ji(t))return t;Ty(t)&&e.push(...t.steps)}}var Mi={blue:{start:"\x1B[34m",end:"\x1B[0m"},green:{start:"\x1B[32m",end:"\x1B[0m"},yellow:{start:"\x1B[33;1m",end:"\x1B[0m"}},Di=(r,e)=>`${r.start}${e}${r.end}`;function*Sl(r){for(let{id:e,name:t,input:n,config:s,triggers:i,writes:o}of r){if(s?.tags?.includes(ee))continue;let a=o.filter(([u,c])=>u===e&&c===V).map(([,u])=>u);yield{id:e,name:t,input:n,triggers:i,interrupts:a}}}function Ry(r){return typeof r!="object"||r===null?!1:"$writes"in r&&Array.isArray(r.$writes)}function rd(r){let e={};for(let[t,n]of r){let s=String(t);if(s in e){let i=Ry(e[s])?e[s].$writes:[e[s]];i.push(n),e[s]={$writes:i}}else e[s]=n}return e}function*nd(r,e){for(let[{id:t,name:n,config:s},i]of r)s?.tags?.includes(ee)||(yield{id:t,name:n,result:rd(i.filter(([o])=>Array.isArray(e)?e.includes(o):o===e)),interrupts:i.filter(o=>o[0]===V).map(o=>o[1])})}function*sd(r,e,t,n,s,i,o,a){function u(p){let h={};return p.callbacks!=null&&(h.callbacks=p.callbacks),p.configurable!=null&&(h.configurable=p.configurable),p.maxConcurrency!=null&&(h.max_concurrency=p.maxConcurrency),p.metadata!=null&&(h.metadata=p.metadata),p.recursionLimit!=null&&(h.recursion_limit=p.recursionLimit),p.runId!=null&&(h.run_id=p.runId),p.runName!=null&&(h.run_name=p.runName),p.tags!=null&&(h.tags=p.tags),h}let c=r.configurable?.checkpoint_ns,l={};for(let p of s){if(!(p.subgraphs?.length?p.subgraphs:[p.proc]).find(Ea))continue;let f=`${p.name}:${p.id}`;c&&(f=`${c}|${f}`),l[p.id]={configurable:{thread_id:r.configurable?.thread_id,checkpoint_ns:f}}}yield{config:u(r),values:Et(e,t),metadata:n,next:s.map(p=>p.name),tasks:Cl(s,i,l,a),parentConfig:o?u(o):void 0}}function Cl(r,e,t,n){return r.map(s=>{let i=e.find(([c,l])=>c===s.id&&l===ge)?.[2],o=e.filter(([c,l])=>c===s.id&&l===V).map(([,,c])=>c),a=(()=>{if(i||o.length||!e.length)return;let c=e.findIndex(([l,p])=>l===s.id&&p===Ot);if(c>=0)return e[c][2];if(typeof n=="string")return e.find(([l,p])=>l===s.id&&p===n)?.[2];if(Array.isArray(n)){let l=e.filter(([p,h])=>p===s.id&&n.includes(h)).map(([,p,h])=>[p,h]);return l.length?rd(l):void 0}})();if(i)return{id:s.id,name:s.name,path:s.path,error:i,interrupts:o,result:a};let u=t?.[s.id];return{id:s.id,name:s.name,path:s.path,interrupts:o,...u!==void 0?{state:u}:{},result:a}})}function id(r,e,t){console.log([`${Di(Mi.blue,`[${r}:checkpoint]`)}`,`\x1B[1m State at the end of step ${r}:\x1B[0m
82
+ `,JSON.stringify(Et(e,t),null,2)].join(""))}function Ia(r,e){let t=e.length;console.log([`${Di(Mi.blue,`[${r}:tasks]`)}`,`\x1B[1m Starting step ${r} with ${t} task${t===1?"":"s"}:\x1B[0m
85
83
  `,e.map(n=>`- ${Di(Mi.green,String(n.name))} -> ${JSON.stringify(n.input,null,2)}`).join(`
86
- `)].join(""))}function rd(r,e,t){let n={};for(let[s,i]of e)t.includes(s)&&(n[s]||(n[s]=[]),n[s].push(i));console.log([`${Di(Mi.blue,`[${r}:writes]`)}`,`\x1B[1m Finished step ${r} with writes to ${Object.keys(n).length} channel${Object.keys(n).length!==1?"s":""}:\x1B[0m
84
+ `)].join(""))}function od(r,e,t){let n={};for(let[s,i]of e)t.includes(s)&&(n[s]||(n[s]=[]),n[s].push(i));console.log([`${Di(Mi.blue,`[${r}:writes]`)}`,`\x1B[1m Finished step ${r} with writes to ${Object.keys(n).length} channel${Object.keys(n).length!==1?"s":""}:\x1B[0m
87
85
  `,Object.entries(n).map(([s,i])=>`- ${Di(Mi.yellow,s)} -> ${i.map(o=>JSON.stringify(o)).join(", ")}`).join(`
88
- `)].join(""))}var $i=class extends Tu{constructor(e,t){let n=e.getReader(),s=t??new AbortController;super({start(i){return o();function o(){return n.read().then(({done:a,value:u})=>{if(a){i.close();return}return i.enqueue(u),o()})}}}),Object.defineProperty(this,"_abortController",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_innerReader",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._abortController=s,this._innerReader=n}async cancel(e){this._abortController.abort(e),this._innerReader.releaseLock()}get signal(){return this._abortController.signal}},ds=class extends Tu{get closed(){return this._closed}constructor(e){let t,n=new Promise(s=>{t=s});super({start:s=>{t(s)}}),Object.defineProperty(this,"modes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"controller",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"passthroughFn",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_closed",{enumerable:!0,configurable:!0,writable:!0,value:!1}),n.then(s=>{this.controller=s}),this.passthroughFn=e.passthroughFn,this.modes=e.modes}push(e){this.passthroughFn?.(e),this.controller.enqueue(e)}close(){try{this.controller.close()}catch{}finally{this._closed=!0}}error(e){this.controller.error(e)}};var Ea=Symbol.for("INPUT_DONE"),kl=Symbol.for("INPUT_RESUMING"),Iy=25;function ky(...r){return new ds({passthroughFn:e=>{for(let t of r)t.modes.has(e[1])&&t.push(e)},modes:new Set(r.flatMap(e=>Array.from(e.modes)))})}var Sl=class extends Ei{constructor(e){super(),Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"queue",{enumerable:!0,configurable:!0,writable:!0,value:Promise.resolve()}),this.cache=e}async get(e){return this.enqueueOperation("get",e)}async set(e){return this.enqueueOperation("set",e)}async clear(e){return this.enqueueOperation("clear",e)}async stop(){await this.queue}enqueueOperation(e,...t){let n=this.queue.then(()=>this.cache[e](...t));return this.queue=n.then(()=>{},()=>{}),n}},Ia=class r{get isResuming(){let e=!1;if(q in this.checkpoint.channel_versions)e=!0;else for(let u in this.checkpoint.channel_versions)if(Object.prototype.hasOwnProperty.call(this.checkpoint.channel_versions,u)){e=!0;break}let n=this.config.configurable?.[Vt]!==void 0&&this.config.configurable?.[Vt],s=this.input===null||this.input===void 0,i=Te(this.input)&&this.input.resume!=null,o=this.input===kl,a=!this.isNested&&this.config.metadata?.run_id!==void 0&&this.checkpointMetadata?.run_id!==void 0&&this.config.metadata.run_id===this.checkpointMetadata?.run_id;return e&&(n||s||i||o||a)}constructor(e){Object.defineProperty(this,"input",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"output",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"config",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointerGetNextVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"channels",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpoint",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointIdSaved",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointConfig",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointMetadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointNamespace",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointPendingWrites",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"checkpointPreviousVersions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"step",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"stop",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"durability",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"outputKeys",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"streamKeys",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"nodes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"skipDoneTasks",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"prevCheckpointConfig",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:"pending"}),Object.defineProperty(this,"tasks",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"stream",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointerPromises",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"isNested",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_checkpointerChainedPromise",{enumerable:!0,configurable:!0,writable:!0,value:Promise.resolve()}),Object.defineProperty(this,"store",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"manager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"interruptAfter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"interruptBefore",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"toInterrupt",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"debug",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"triggerToNodes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.input=e.input,this.checkpointer=e.checkpointer,this.checkpointer!==void 0?this.checkpointerGetNextVersion=this.checkpointer.getNextVersion.bind(this.checkpointer):this.checkpointerGetNextVersion=Yh,this.checkpoint=e.checkpoint,this.checkpointMetadata=e.checkpointMetadata,this.checkpointPreviousVersions=e.checkpointPreviousVersions,this.channels=e.channels,this.checkpointPendingWrites=e.checkpointPendingWrites,this.step=e.step,this.stop=e.stop,this.config=e.config,this.checkpointConfig=e.checkpointConfig,this.isNested=e.isNested,this.manager=e.manager,this.outputKeys=e.outputKeys,this.streamKeys=e.streamKeys,this.nodes=e.nodes,this.skipDoneTasks=e.skipDoneTasks,this.store=e.store,this.cache=e.cache?new Sl(e.cache):void 0,this.stream=e.stream,this.checkpointNamespace=e.checkpointNamespace,this.prevCheckpointConfig=e.prevCheckpointConfig,this.interruptAfter=e.interruptAfter,this.interruptBefore=e.interruptBefore,this.durability=e.durability,this.debug=e.debug,this.triggerToNodes=e.triggerToNodes}static async initialize(e){let{config:t,stream:n}=e;n!==void 0&&t.configurable?.[os]!==void 0&&(n=ky(n,t.configurable[os]));let s=t.configurable?!("checkpoint_id"in t.configurable):!0,i=t.configurable?.[vt];t.configurable&&i&&(i.subgraphCounter>0&&(t=Xe(t,{[At]:[t.configurable[At],i.subgraphCounter.toString()].join(ce)})),i.subgraphCounter+=1);let o=xt in(t.configurable??{});!o&&t.configurable?.checkpoint_ns!==void 0&&t.configurable?.checkpoint_ns!==""&&(t=Xe(t,{checkpoint_ns:"",checkpoint_id:void 0}));let a=t;t.configurable?.[Be]!==void 0&&t.configurable?.[Be]?.[t.configurable?.checkpoint_ns]&&(a=Xe(t,{checkpoint_id:t.configurable[Be][t.configurable?.checkpoint_ns]}));let u=t.configurable?.checkpoint_ns?.split(ce)??[],c=await e.checkpointer?.getTuple(a)??{config:t,checkpoint:Ai(),metadata:{source:"input",step:-2,parents:{}},pendingWrites:[]};a={...t,...c.config,configurable:{checkpoint_ns:"",...t.configurable,...c.config.configurable}};let l=c.parentConfig,p=Wt(c.checkpoint),h={...c.metadata},f=c.pendingWrites??[],g=Ir(e.channelSpecs,p),b=(h.step??0)+1,_=b+(t.recursionLimit??Iy)+1,I={...p.channel_versions},v=e.store?new Pi(e.store):void 0;return v&&await v.start(),new r({input:e.input,config:t,checkpointer:e.checkpointer,checkpoint:p,checkpointMetadata:h,checkpointConfig:a,prevCheckpointConfig:l,checkpointNamespace:u,channels:g,isNested:o,manager:e.manager,skipDoneTasks:s,step:b,stop:_,checkpointPreviousVersions:I,checkpointPendingWrites:f,outputKeys:e.outputKeys??[],streamKeys:e.streamKeys??[],nodes:e.nodes,stream:n,store:v,cache:e.cache,interruptAfter:e.interruptAfter,interruptBefore:e.interruptBefore,durability:e.durability,debug:e.debug,triggerToNodes:e.triggerToNodes})}_checkpointerPutAfterPrevious(e){this._checkpointerChainedPromise=this._checkpointerChainedPromise.then(()=>this.checkpointer?.put(e.config,e.checkpoint,e.metadata,e.newVersions)),this.checkpointerPromises.push(this._checkpointerChainedPromise)}putWrites(e,t){let n=t;if(n.length===0)return;n.every(([o])=>o in ta)&&(n=Array.from(new Map(n.map(o=>[o[0],o])).values())),this.checkpointPendingWrites=this.checkpointPendingWrites.filter(o=>o[0]!==e);for(let[o,a]of n)this.checkpointPendingWrites.push([e,o,a]);let s=Xe(this.checkpointConfig,{[At]:this.config.configurable?.checkpoint_ns??"",[oa]:this.checkpoint.id});if(this.durability!=="exit"&&this.checkpointer!=null&&this.checkpointerPromises.push(this.checkpointer.putWrites(s,n,e)),this.tasks&&this._outputWrites(e,n),!t.length||!this.cache||!this.tasks)return;let i=this.tasks[e];i==null||i.cache_key==null||t[0][0]===ge||t[0][0]===V||this.cache.set([{key:[i.cache_key.ns,i.cache_key.key],value:i.writes,ttl:i.cache_key.ttl}])}_outputWrites(e,t,n=!1){let s=this.tasks[e];if(s!==void 0){if(s.config!==void 0&&(s.config.tags??[]).includes(ee))return;if(t.length>0)if(t[0][0]===V){if(s.path?.[0]===$e&&s.path?.at(-1)===!0)return;let i=t.filter(o=>o[0]===V).flatMap(o=>o[1]);this._emit([["updates",{[V]:i}],["values",{[V]:i}]])}else t[0][0]!==ge&&this._emit(cn(pr(Wh(this.outputKeys,[[s,t]],n),"updates")));n||this._emit(cn(pr(Qh([[s,t]],this.streamKeys),"tasks")))}}async _matchCachedWrites(){if(!this.cache)return[];let e=[],t=([o,a])=>`ns:${o.join(",")}|key:${a}`,n=[],s={};for(let o of Object.values(this.tasks))o.cache_key!=null&&!o.writes.length&&(n.push([o.cache_key.ns,o.cache_key.key]),s[t([o.cache_key.ns,o.cache_key.key])]=o);if(n.length===0)return[];let i=await this.cache.get(n);for(let{key:o,value:a}of i){let u=s[t(o)];u!=null&&(u.writes.push(...a),e.push({task:u,result:a}))}return e}async tick(e){this.store&&!this.store.isRunning&&await this.store?.start();let{inputKeys:t=[]}=e;if(this.status!=="pending")throw new Error(`Cannot tick when status is no longer "pending". Current status: "${this.status}"`);if(![Ea,kl].includes(this.input))await this._first(t);else{if(this.toInterrupt.length>0)throw this.status="interrupt_before",new Ar;if(Object.values(this.tasks).every(i=>i.writes.length>0)){let i=Object.values(this.tasks).flatMap(a=>a.writes);We(this.checkpoint,this.channels,Object.values(this.tasks),this.checkpointerGetNextVersion,this.triggerToNodes);let o=await Pt(pr(wa(this.outputKeys,i,this.channels),"values"));if(this._emit(o),this.checkpointPendingWrites=[],await this._putCheckpoint({source:"loop"}),Ni(this.checkpoint,this.interruptAfter,Object.values(this.tasks)))throw this.status="interrupt_after",new Ar;this.config.configurable?.[Vt]!==void 0&&delete this.config.configurable?.[Vt]}else return!1}if(this.step>this.stop)return this.status="out_of_steps",!1;let n=Tr(this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,this.config,!0,{step:this.step,checkpointer:this.checkpointer,isResuming:this.isResuming,manager:this.manager,store:this.store,stream:this.stream});if(this.tasks=n,this.checkpointer&&this._emit(await Pt(pr(ed(this.checkpointConfig,this.channels,this.streamKeys,this.checkpointMetadata,Object.values(this.tasks),this.checkpointPendingWrites,this.prevCheckpointConfig,this.outputKeys),"checkpoints"))),Object.values(this.tasks).length===0)return this.status="done",!1;if(this.skipDoneTasks&&this.checkpointPendingWrites.length>0){for(let[i,o,a]of this.checkpointPendingWrites){if(o===ge||o===V||o===Me)continue;let u=Object.values(this.tasks).find(c=>c.id===i);u&&u.writes.push([o,a])}for(let i of Object.values(this.tasks))i.writes.length>0&&this._outputWrites(i.id,i.writes,!0)}if(Object.values(this.tasks).every(i=>i.writes.length>0))return this.tick({inputKeys:t});if(Ni(this.checkpoint,this.interruptBefore,Object.values(this.tasks)))throw this.status="interrupt_before",new Ar;let s=await Pt(pr(El(Object.values(this.tasks)),"tasks"));return this._emit(s),!0}async finishAndHandleError(e){this.durability==="exit"&&(!this.isNested||typeof e<"u"||this.checkpointNamespace.every(n=>!n.includes(Ke)))&&(this._putCheckpoint(this.checkpointMetadata),this._flushPendingWrites());let t=this._suppressInterrupt(e);return(t||e===void 0)&&(this.output=Et(this.channels,this.outputKeys)),t&&(this.tasks!==void 0&&this.checkpointPendingWrites.length>0&&Object.values(this.tasks).some(n=>n.writes.length>0)&&(We(this.checkpoint,this.channels,Object.values(this.tasks),this.checkpointerGetNextVersion,this.triggerToNodes),this._emit(cn(pr(wa(this.outputKeys,Object.values(this.tasks).flatMap(n=>n.writes),this.channels),"values")))),Or(e)&&!e.interrupts.length&&this._emit([["updates",{[V]:[]}],["values",{[V]:[]}]])),t}async acceptPush(e,t,n){if(this.interruptAfter?.length>0&&Ni(this.checkpoint,this.interruptAfter,[e])){this.toInterrupt.push(e);return}let s=Aa([$e,e.path??[],t,e.id,n],this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,e.config??{},!0,{step:this.step,checkpointer:this.checkpointer,manager:this.manager,store:this.store,stream:this.stream});if(!s)return;if(this.interruptBefore?.length>0&&Ni(this.checkpoint,this.interruptBefore,[s])){this.toInterrupt.push(s);return}this._emit(cn(pr(El([s]),"tasks"))),this.debug&&Pa(this.step,[s]),this.tasks[s.id]=s,this.skipDoneTasks&&this._matchWrites({[s.id]:s});let i=await this._matchCachedWrites();for(let{task:o}of i)this._outputWrites(o.id,o.writes,!0);return s}_suppressInterrupt(e){return Or(e)&&!this.isNested}async _first(e){let{configurable:t}=this.config,n=t?.[vt];if(n&&n.nullResume!==void 0&&this.putWrites(Le,[[Me,n.nullResume]]),Te(this.input)){let o=this.input.resume!=null;if(this.input.resume!=null&&typeof this.input.resume=="object"&&Object.keys(this.input.resume).every(ya)&&(this.config.configurable??={},this.config.configurable[as]=this.input.resume),o&&this.checkpointer==null)throw new Error("Cannot use Command(resume=...) without checkpointer");let a={};for(let[u,c,l]of Kh(this.input,this.checkpointPendingWrites))a[u]??=[],a[u].push([c,l]);if(Object.keys(a).length===0)throw new hi("Received empty Command input");for(let[u,c]of Object.entries(a))this.putWrites(u,c)}let s=(this.checkpointPendingWrites??[]).filter(o=>o[0]===Le).map(o=>o.slice(1));s.length>0&&We(this.checkpoint,this.channels,[{name:wt,writes:s,triggers:[]}],this.checkpointerGetNextVersion,this.triggerToNodes);let i=Te(this.input)&&s.length>0;if(this.isResuming||i){for(let a in this.channels)if(Object.prototype.hasOwnProperty.call(this.channels,a)&&this.checkpoint.channel_versions[a]!==void 0){let u=this.checkpoint.channel_versions[a];this.checkpoint.versions_seen[V]={...this.checkpoint.versions_seen[V],[a]:u}}let o=await Pt(pr(wa(this.outputKeys,!0,this.channels),"values"));this._emit(o)}if(this.isResuming)this.input=kl;else if(i)await this._putCheckpoint({source:"input"}),this.input=Ea;else{let o=await Pt(_a(e,this.input));if(o.length>0){let a=Tr(this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,this.config,!0,{step:this.step});We(this.checkpoint,this.channels,Object.values(a).concat([{name:wt,writes:o,triggers:[]}]),this.checkpointerGetNextVersion,this.triggerToNodes),await this._putCheckpoint({source:"input"}),this.input=Ea}else if(Vt in(this.config.configurable??{}))this.input=Ea;else throw new hi(`Received no input writes for ${JSON.stringify(e,null,2)}`)}this.isNested||(this.config=Xe(this.config,{[Vt]:this.isResuming}))}_emit(e){for(let[t,n]of e)if(this.stream.modes.has(t)&&this.stream.push([this.checkpointNamespace,t,n]),(t==="checkpoints"||t==="tasks")&&this.stream.modes.has("debug")){let s=t==="checkpoints"?this.step-1:this.step,i=new Date().toISOString(),o=t==="checkpoints"?"checkpoint":typeof n=="object"&&n!=null&&"result"in n?"task_result":"task";this.stream.push([this.checkpointNamespace,"debug",{step:s,type:o,timestamp:i,payload:n}])}}_putCheckpoint(e){let t=this.checkpointMetadata===e,n=this.checkpointer!=null&&(this.durability!=="exit"||t),s=i=>{this.prevCheckpointConfig=this.checkpointConfig?.configurable?.checkpoint_id?this.checkpointConfig:void 0,this.checkpointConfig=Xe(this.checkpointConfig,{[At]:this.config.configurable?.checkpoint_ns??""});let o={...this.checkpoint.channel_versions},a=fs(this.checkpointPreviousVersions,o);this.checkpointPreviousVersions=o,this._checkpointerPutAfterPrevious({config:{...this.checkpointConfig},checkpoint:Wt(i),metadata:{...this.checkpointMetadata},newVersions:a}),this.checkpointConfig={...this.checkpointConfig,configurable:{...this.checkpointConfig.configurable,checkpoint_id:this.checkpoint.id}}};t||(this.checkpointMetadata={...e,step:this.step,parents:this.config.configurable?.[Be]??{}}),this.checkpoint=_t(this.checkpoint,n?this.channels:void 0,this.step,t?{id:this.checkpoint.id}:void 0),n&&s(this.checkpoint),t||(this.step+=1)}_flushPendingWrites(){if(this.checkpointer==null||this.checkpointPendingWrites.length===0)return;let e=Xe(this.checkpointConfig,{[At]:this.config.configurable?.checkpoint_ns??"",[oa]:this.checkpoint.id}),t={};for(let[n,s,i]of this.checkpointPendingWrites)t[n]??=[],t[n].push([s,i]);for(let[n,s]of Object.entries(t))this.checkpointerPromises.push(this.checkpointer.putWrites(e,s,n))}_matchWrites(e){for(let[t,n,s]of this.checkpointPendingWrites){if(n===ge||n===V||n===Me)continue;let i=Object.values(e).find(o=>o.id===t);i&&i.writes.push([n,s])}for(let t of Object.values(e))t.writes.length>0&&this._outputWrites(t.id,t.writes,!0)}};function Sy(r){return ve(r?.message)}var ka=class extends wf{constructor(e){super(),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"StreamMessagesHandler"}),Object.defineProperty(this,"streamFn",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metadatas",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"seen",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"emittedChatModelRunIds",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"stableMessageIdMap",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"lc_prefer_streaming",{enumerable:!0,configurable:!0,writable:!0,value:!0}),this.streamFn=e}_emit(e,t,n,s=!1){if(s&&t.id!==void 0&&this.seen[t.id]!==void 0)return;let i=t.id;n!=null&&(wo(t)?i??=`run-${n}-tool-${t.tool_call_id}`:((i==null||i===`run-${n}`)&&(i=this.stableMessageIdMap[n]??i??`run-${n}`),this.stableMessageIdMap[n]??=i)),i!==t.id&&(t.id=i,t.lc_kwargs.id=i),t.id!=null&&(this.seen[t.id]=t),this.streamFn([e[0],"messages",[t,e[1]]])}handleChatModelStart(e,t,n,s,i,o,a,u){a&&(!o||!o.includes(kh)&&!o.includes("nostream"))&&(this.metadatas[n]=[a.langgraph_checkpoint_ns.split("|"),{tags:o,name:u,...a}])}handleLLMNewToken(e,t,n,s,i,o){let a=o?.chunk;this.emittedChatModelRunIds[n]=!0,this.metadatas[n]!==void 0&&(Sy(a)?this._emit(this.metadatas[n],a.message,n):this._emit(this.metadatas[n],new Mt({content:e}),n))}handleLLMEnd(e,t){if(this.metadatas[t]!==void 0){if(!this.emittedChatModelRunIds[t]){let n=e.generations?.[0]?.[0];ve(n?.message)&&this._emit(this.metadatas[t],n?.message,t,!0),delete this.emittedChatModelRunIds[t]}delete this.metadatas[t],delete this.stableMessageIdMap[t]}}handleLLMError(e,t){delete this.metadatas[t]}handleChainStart(e,t,n,s,i,o,a,u){if(o!==void 0&&u===o.langgraph_node&&(i===void 0||!i.includes(ee))&&(this.metadatas[n]=[o.langgraph_checkpoint_ns.split("|"),{tags:i,name:u,...o}],typeof t=="object")){for(let c of Object.values(t))if((ve(c)||ii(c))&&c.id!==void 0)this.seen[c.id]=c;else if(Array.isArray(c))for(let l of c)(ve(l)||ii(l))&&l.id!==void 0&&(this.seen[l.id]=l)}}handleChainEnd(e,t){let n=this.metadatas[t];if(delete this.metadatas[t],n!==void 0){if(ve(e))this._emit(n,e,t,!0);else if(Array.isArray(e))for(let s of e)ve(s)&&this._emit(n,s,t,!0);else if(e!=null&&typeof e=="object"){for(let s of Object.values(e))if(ve(s))this._emit(n,s,t,!0);else if(Array.isArray(s))for(let i of s)ve(i)&&this._emit(n,i,t,!0)}}}handleChainError(e,t){delete this.metadatas[t]}};var Cy=500,Ty=2,Ry=128e3,Ny=3,jy=[400,401,402,403,404,405,406,407,409],My=r=>{if(r.message.startsWith("Cancel")||r.message.startsWith("AbortError")||r.name==="AbortError"||r.name==="GraphValueError"||r?.code==="ECONNABORTED")return!1;let e=r?.response?.status??r?.status;return!(e&&jy.includes(+e)||r?.error?.code==="insufficient_quota")};async function Cl(r,e,t,n){let s=r.retry_policy??e,i=s!==void 0?s.initialInterval??Cy:0,o=0,a,u,{config:c}=r;for(t&&(c=Xe(c,t)),c={...c,signal:n};!n?.aborted;){r.writes.splice(0,r.writes.length),a=void 0;try{u=await r.proc.invoke(r.input,c);break}catch(l){if(a=l,a.pregelTaskId=r.id,Xf(a)){let g=c?.configurable?.checkpoint_ns,b=a.command;if(b.graph===g){for(let _ of r.writers)await _.invoke(b,c);a=void 0;break}else if(b.graph===Ce.PARENT){let _=Th(g);a.command=new Ce({...a.command,graph:_})}}if(Gn(a)||s===void 0||(o+=1,o>=(s.maxAttempts??Ny))||!(s.retryOn??My)(a))break;i=Math.min(s.maxInterval??Ry,i*(s.backoffFactor??Ty));let h=s.jitter?Math.floor(i+Math.random()*1e3):i;await new Promise(g=>setTimeout(g,h));let f=a.name??a.constructor.unminifiable_name??a.constructor.name;(s?.logWarning??!0)&&console.log(`Retrying task "${String(r.name)}" after ${i.toFixed(2)}ms (attempt ${o}) after ${f}: ${a}`),c=Xe(c,{[Vt]:!0})}}return{task:r,result:u,error:a,signalAborted:n?.aborted}}var Tl=Symbol.for("promiseAdded");function Dy(){let r={next:()=>{},wait:Promise.resolve(Tl)};function e(t){r.next=()=>{r.wait=new Promise(e),t(Tl)}}return r.wait=new Promise(e),r}var Sa=class{constructor({loop:e,nodeFinished:t}){Object.defineProperty(this,"nodeFinished",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"loop",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.loop=e,this.nodeFinished=t}async tick(e={}){let{timeout:t,retryPolicy:n,onStepWrite:s,maxConcurrency:i}=e,o=new Set,a,u=new AbortController,c=u.signal,l=t?AbortSignal.timeout(t):void 0,p=Object.values(this.loop.tasks).filter(b=>b.writes.length===0),{signals:h,disposeCombinedSignal:f}=this._initializeAbortSignals({exceptionSignal:c,stepTimeoutSignal:l,signal:e.signal}),g=this._executeTasksWithRetry(p,{signals:h,retryPolicy:n,maxConcurrency:i});for await(let{task:b,error:_,signalAborted:I}of g)this._commit(b,_),Or(_)||Gn(_)&&!Or(a)?a=_:_&&(o.size===0||!I)&&(u.abort(),o.add(_));if(f?.(),s?.(this.loop.step,Object.values(this.loop.tasks).map(b=>b.writes).flat()),o.size===1)throw Array.from(o)[0];if(o.size>1)throw new AggregateError(Array.from(o),`Multiple errors occurred during superstep ${this.loop.step}. See the "errors" field of this exception for more details.`);if(Or(a)||Gn(a)&&this.loop.isNested)throw a}_initializeAbortSignals({exceptionSignal:e,stepTimeoutSignal:t,signal:n}){let s=this.loop.config.configurable?.[gl]??{},i=s.externalAbortSignal??n,o=t??s.timeoutAbortSignal,{signal:a,dispose:u}=hs(i,o,e),c={externalAbortSignal:i,timeoutAbortSignal:o,composedAbortSignal:a};return this.loop.config=Xe(this.loop.config,{[gl]:c}),{signals:c,disposeCombinedSignal:u}}async*_executeTasksWithRetry(e,t){let{retryPolicy:n,maxConcurrency:s,signals:i}=t??{},o=Dy(),a={},u={executingTasksMap:a,barrier:o,retryPolicy:n,scheduleTask:async(f,g,b)=>this.loop.acceptPush(f,g,b)};if(i?.composedAbortSignal?.aborted)throw new Error("Abort");let c=0,l,p=hs(i?.externalAbortSignal,i?.timeoutAbortSignal),h=p.signal?new Promise((f,g)=>{l=()=>g(new Error("Abort")),p.signal?.addEventListener("abort",l,{once:!0})}):void 0;for(;(c===0||Object.keys(a).length>0)&&e.length;){for(;Object.values(a).length<(s??e.length)&&c<e.length;c+=1){let g=e[c];a[g.id]=Cl(g,n,{[Si]:nd?.bind(u,this,g)},i?.composedAbortSignal).catch(b=>({task:g,error:b,signalAborted:i?.composedAbortSignal?.aborted}))}let f=await Promise.race([...Object.values(a),...h?[h]:[],o.wait]);f!==Tl&&(yield f,l!=null&&(p.signal?.removeEventListener("abort",l),p.dispose?.()),delete a[f.task.id])}}_commit(e,t){if(t!==void 0)if(Or(t)){if(t.interrupts.length){let n=t.interrupts.map(i=>[V,i]),s=e.writes.filter(i=>i[0]===Me);s.length&&n.push(...s),this.loop.putWrites(e.id,n)}}else Gn(t)&&e.writes.length?this.loop.putWrites(e.id,e.writes):this.loop.putWrites(e.id,[[ge,{message:t.message,name:t.name}]]);else this.nodeFinished&&(e.config?.tags==null||!e.config.tags.includes(ee))&&this.nodeFinished(String(e.name)),e.writes.length===0&&e.writes.push([Ci,null]),this.loop.putWrites(e.id,e.writes)}};async function nd(r,e,t,n,s,i={}){let o=e.config?.configurable?.[vt];if(!o)throw new Error(`BUG: No scratchpad found on task ${e.name}__${e.id}`);let a=o.callCounter;o.callCounter+=1;let u=new xa({func:t,name:n,input:s,cache:i.cache,retry:i.retry,callbacks:i.callbacks}),c=await this.scheduleTask(e,a,u);if(!c)return;let l=this.executingTasksMap[c.id];if(l!==void 0)return l;if(c.writes.length>0){let p=c.writes.filter(([f])=>f===Ot),h=c.writes.filter(([f])=>f===ge);if(p.length>0){if(p.length===1)return Promise.resolve(p[0][1]);throw new Error(`BUG: multiple returns found for task ${c.name}__${c.id}`)}if(h.length>0){if(h.length===1){let f=h[0][1],g=f instanceof Error?f:new Error(String(f));return Promise.reject(g)}throw new Error(`BUG: multiple errors found for task ${c.name}__${c.id}`)}return}else{let p=Cl(c,i.retry,{[Si]:nd.bind(this,r,c)});return this.executingTasksMap[c.id]=p,this.barrier.next(),p.then(({result:h,error:f})=>f?Promise.reject(f):h)}}var It=class extends Error{constructor(e){super(e),this.name="GraphValidationError"}};function sd({nodes:r,channels:e,inputChannels:t,outputChannels:n,streamChannels:s,interruptAfterNodes:i,interruptBeforeNodes:o}){if(!e)throw new It("Channels not provided");let a=new Set,u=new Set;for(let[c,l]of Object.entries(r)){if(c===V)throw new It(`"Node name ${V} is reserved"`);if(l.constructor===et)l.triggers.forEach(p=>a.add(p));else throw new It(`Invalid node type ${typeof l}, expected PregelNode`)}for(let c of a)if(!(c in e))throw new It(`Subscribed channel '${String(c)}' not in channels`);if(Array.isArray(t)){if(t.every(c=>!a.has(c)))throw new It(`None of the input channels ${t} are subscribed to by any node`)}else if(!a.has(t))throw new It(`Input channel ${String(t)} is not subscribed to by any node`);Array.isArray(n)?n.forEach(c=>u.add(c)):u.add(n),s&&!Array.isArray(s)?u.add(s):Array.isArray(s)&&s.forEach(c=>u.add(c));for(let c of u)if(!(c in e))throw new It(`Output channel '${String(c)}' not in channels`);if(i&&i!=="*"){for(let c of i)if(!(c in r))throw new It(`Node ${String(c)} not in nodes`)}if(o&&o!=="*"){for(let c of o)if(!(c in r))throw new It(`Node ${String(c)} not in nodes`)}}function Rl(r,e){if(Array.isArray(r)){for(let t of r)if(!(t in e))throw new Error(`Key ${String(t)} not found in channels`)}else if(!(r in e))throw new Error(`Key ${String(r)} not found in channels`)}var Ca=class r extends je{constructor(e){super(),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"Topic"}),Object.defineProperty(this,"unique",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"accumulate",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"seen",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"values",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.unique=e?.unique??this.unique,this.accumulate=e?.accumulate??this.accumulate,this.seen=new Set,this.values=[]}fromCheckpoint(e){let t=new r({unique:this.unique,accumulate:this.accumulate});return typeof e<"u"&&(t.seen=new Set(e[0]),t.values=e[1]),t}update(e){let t=!1;this.accumulate||(t=this.values.length>0,this.values=[]);let n=e.flat();if(n.length>0)if(this.unique)for(let s of n)this.seen.has(s)||(t=!0,this.seen.add(s),this.values.push(s));else t=!0,this.values.push(...n);return t}get(){if(this.values.length===0)throw new ne;return this.values}checkpoint(){return[[...this.seen],this.values]}isAvailable(){return this.values.length!==0}};var Ta=class{static subscribeTo(e,t){let{key:n,tags:s}={key:void 0,tags:void 0,...t??{}};if(Array.isArray(e)&&n!==void 0)throw new Error("Can't specify a key when subscribing to multiple channels");let i;typeof e=="string"?n?i={[n]:e}:i=[e]:i=Object.fromEntries(e.map(a=>[a,a]));let o=Array.isArray(e)?e:[e];return new et({channels:i,triggers:o,tags:s})}static writeTo(e,t){let n=[];for(let s of e)n.push({channel:s,value:Je,skipNone:!1});for(let[s,i]of Object.entries(t??{}))Z.isRunnable(i)||typeof i=="function"?n.push({channel:s,value:Je,skipNone:!0,mapper:Ne(i)}):n.push({channel:s,value:i,skipNone:!1});return new ae(n)}},Nl=class extends Z{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langgraph","pregel"]})}invoke(e,t){throw new Error("Not implemented")}withConfig(e){return super.withConfig(e)}stream(e,t){return super.stream(e,t)}},ms=class extends Nl{static lc_name(){return"LangGraph"}constructor(e){super(e),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langgraph","pregel"]}),Object.defineProperty(this,"lg_is_pregel",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"nodes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"channels",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"inputChannels",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"outputChannels",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"autoValidate",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"streamMode",{enumerable:!0,configurable:!0,writable:!0,value:["values"]}),Object.defineProperty(this,"streamChannels",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"interruptAfter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"interruptBefore",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"stepTimeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"debug",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"checkpointer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"retryPolicy",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"config",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"store",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"triggerToNodes",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:void 0});let{streamMode:t}=e;if(t!=null&&!Array.isArray(t)&&(t=[t]),this.nodes=e.nodes,this.channels=e.channels,De in this.channels&&"lc_graph_name"in this.channels[De]&&this.channels[De].lc_graph_name!=="Topic")throw new Error(`Channel '${De}' is reserved and cannot be used in the graph.`);this.channels[De]=new Ca({accumulate:!1}),this.autoValidate=e.autoValidate??this.autoValidate,this.streamMode=t??this.streamMode,this.inputChannels=e.inputChannels,this.outputChannels=e.outputChannels,this.streamChannels=e.streamChannels??this.streamChannels,this.interruptAfter=e.interruptAfter,this.interruptBefore=e.interruptBefore,this.stepTimeout=e.stepTimeout??this.stepTimeout,this.debug=e.debug??this.debug,this.checkpointer=e.checkpointer,this.retryPolicy=e.retryPolicy,this.config=e.config,this.store=e.store,this.cache=e.cache,this.name=e.name,this.autoValidate&&this.validate()}withConfig(e){let t=ze(this.config,e);return new this.constructor({...this,config:t})}validate(){sd({nodes:this.nodes,channels:this.channels,outputChannels:this.outputChannels,inputChannels:this.inputChannels,streamChannels:this.streamChannels,interruptAfterNodes:this.interruptAfter,interruptBeforeNodes:this.interruptBefore});for(let[e,t]of Object.entries(this.nodes))for(let n of t.triggers)this.triggerToNodes[n]??=[],this.triggerToNodes[n].push(e);return this}get streamChannelsList(){return Array.isArray(this.streamChannels)?this.streamChannels:this.streamChannels?[this.streamChannels]:Object.keys(this.channels)}get streamChannelsAsIs(){return this.streamChannels?this.streamChannels:Object.keys(this.channels)}async getGraphAsync(e){return this.getGraph(e)}*getSubgraphs(e,t){for(let[n,s]of Object.entries(this.nodes)){if(e!==void 0&&!e.startsWith(n))continue;let i=s.subgraphs?.length?s.subgraphs:[s.bound];for(let o of i){let a=Oa(o);if(a!==void 0){if(n===e){yield[n,a];return}if(e===void 0&&(yield[n,a]),t){let u=e;e!==void 0&&(u=e.slice(n.length+1));for(let[c,l]of a.getSubgraphs(u,t))yield[`${n}${ce}${c}`,l]}}}}}async*getSubgraphsAsync(e,t){yield*this.getSubgraphs(e,t)}async _prepareStateSnapshot({config:e,saved:t,subgraphCheckpointer:n,applyPendingWrites:s=!1}){if(t===void 0)return{values:{},next:[],config:e,tasks:[]};let i=Ir(this.channels,t.checkpoint);if(t.pendingWrites?.length){let h=t.pendingWrites.filter(([f,g])=>f===Le).map(([f,g,b])=>[String(g),b]);h.length>0&&We(t.checkpoint,i,[{name:wt,writes:h,triggers:[]}],void 0,this.triggerToNodes)}let o=Object.values(Tr(t.checkpoint,t.pendingWrites,this.nodes,i,t.config,!0,{step:(t.metadata?.step??-1)+1,store:this.store})),a=await Pt(this.getSubgraphsAsync()),u=t.config.configurable?.checkpoint_ns??"",c={};for(let h of o){let f=a.find(([b])=>b===h.name);if(!f)continue;let g=`${String(h.name)}${Ke}${h.id}`;if(u&&(g=`${u}${ce}${g}`),n===void 0){let b={configurable:{thread_id:t.config.configurable?.thread_id,checkpoint_ns:g}};c[h.id]=b}else{let b={configurable:{[de]:n,thread_id:t.config.configurable?.thread_id,checkpoint_ns:g}},_=f[1];c[h.id]=await _.getState(b,{subgraphs:!0})}}if(s&&t.pendingWrites?.length){let h=Object.fromEntries(o.map(g=>[g.id,g]));for(let[g,b,_]of t.pendingWrites)[ge,V,qn].includes(b)||g in h&&h[g].writes.push([String(b),_]);let f=o.filter(g=>g.writes.length>0);f.length>0&&We(t.checkpoint,i,f,void 0,this.triggerToNodes)}let l=t?.metadata;l&&t?.config?.configurable?.thread_id&&(l={...l,thread_id:t.config.configurable.thread_id});let p=o.filter(h=>h.writes.length===0).map(h=>h.name);return{values:Et(i,this.streamChannelsAsIs),next:p,tasks:Il(o,t?.pendingWrites??[],c,this.streamChannelsAsIs),metadata:l,config:Cr(t.config,t.metadata),createdAt:t.checkpoint.ts,parentConfig:t.parentConfig}}async getState(e,t){let n=e.configurable?.[de]??this.checkpointer;if(!n)throw new Vn("No checkpointer set");let s=e.configurable?.checkpoint_ns??"";if(s!==""&&e.configurable?.[de]===void 0){let u=ca(s);for await(let[c,l]of this.getSubgraphsAsync(u,!0))if(c===u)return await l.getState(ln(e,{[de]:n}),{subgraphs:t?.subgraphs});throw new Error(`Subgraph with namespace "${u}" not found.`)}let i=ze(this.config,e),o=await n.getTuple(e);return await this._prepareStateSnapshot({config:i,saved:o,subgraphCheckpointer:t?.subgraphs?n:void 0,applyPendingWrites:!e.configurable?.checkpoint_id})}async*getStateHistory(e,t){let n=e.configurable?.[de]??this.checkpointer;if(!n)throw new Vn("No checkpointer set");let s=e.configurable?.checkpoint_ns??"";if(s!==""&&e.configurable?.[de]===void 0){let o=ca(s);for await(let[a,u]of this.getSubgraphsAsync(o,!0))if(a===o){yield*u.getStateHistory(ln(e,{[de]:n}),t);return}throw new Error(`Subgraph with namespace "${o}" not found.`)}let i=ze(this.config,e,{configurable:{checkpoint_ns:s}});for await(let o of n.list(i,t))yield this._prepareStateSnapshot({config:o.config,saved:o})}async bulkUpdateState(e,t){let n=e.configurable?.[de]??this.checkpointer;if(!n)throw new Vn("No checkpointer set");if(t.length===0)throw new Error("No supersteps provided");if(t.some(a=>a.updates.length===0))throw new Error("No updates provided");let s=e.configurable?.checkpoint_ns??"";if(s!==""&&e.configurable?.[de]===void 0){let a=ca(s);for await(let[,u]of this.getSubgraphsAsync(a,!0))return await u.bulkUpdateState(ln(e,{[de]:n}),t);throw new Error(`Subgraph "${a}" not found`)}let i=async(a,u)=>{let c=this.config?ze(this.config,a):a,l=await n.getTuple(c),p=l!==void 0?Wt(l.checkpoint):Ai(),h={...l?.checkpoint.channel_versions},f=l?.metadata?.step??-1,g=ln(c,{checkpoint_ns:c.configurable?.checkpoint_ns??""}),b=c.metadata??{};l?.config.configurable&&(g=ln(c,l.config.configurable),b={...l.metadata,...b});let{values:_,asNode:I}=u[0];if(_==null&&I===void 0){if(u.length>1)throw new X("Cannot create empty checkpoint with multiple updates");let y=await n.put(g,_t(p,void 0,f),{source:"update",step:f+1,parents:l?.metadata?.parents??{}},{});return Cr(y,l?l.metadata:void 0)}let v=Ir(this.channels,p);if(_===null&&I===K){if(u.length>1)throw new X("Cannot apply multiple updates when clearing state");if(l){let T=Tr(p,l.pendingWrites||[],this.nodes,v,l.config,!0,{step:(l.metadata?.step??-1)+1,checkpointer:n,store:this.store}),$=(l.pendingWrites||[]).filter(P=>P[0]===Le).map(P=>P.slice(1));$.length>0&&We(p,v,[{name:wt,writes:$,triggers:[]}],n.getNextVersion.bind(n),this.triggerToNodes);for(let[P,J,ie]of l.pendingWrites||[])[ge,V,qn].includes(J)||P in T&&T[P].writes.push([J,ie]);We(p,v,Object.values(T),n.getNextVersion.bind(n),this.triggerToNodes)}let y=await n.put(g,_t(p,v,f),{...b,source:"update",step:f+1,parents:l?.metadata?.parents??{}},fs(h,p.channel_versions));return Cr(y,l?l.metadata:void 0)}if(I===Eh){if(u.length>1)throw new X("Cannot copy checkpoint with multiple updates");if(l==null)throw new X("Cannot copy a non-existent checkpoint");let y=P=>!Array.isArray(P)||P.length===0?!1:P.every(J=>Array.isArray(J)&&J.length===2),T=_t(p,void 0,f),$=await n.put(l.parentConfig??ln(l.config,{checkpoint_id:void 0}),T,{source:"fork",step:f+1,parents:l.metadata?.parents??{}},{});if(y(_)){let P=Tr(T,l.pendingWrites,this.nodes,v,$,!1,{step:f+2}),J=Object.values(P).reduce((le,{name:Nt,id:Q})=>(le[Nt]??=[],le[Nt].push({id:Q}),le),{}),ie=_.reduce((le,Nt)=>{let[Q,Gr]=Nt;le[Gr]??=[];let ni=le[Gr].length,si=J[Gr]?.[ni]?.id;return le[Gr].push({values:Q,asNode:Gr,taskId:si}),le},{});return i(Cr($,l.metadata),Object.values(ie).flat())}return Cr($,l.metadata)}if(I===wt){if(u.length>1)throw new X("Cannot apply multiple updates when updating as input");let y=await Pt(_a(this.inputChannels,_));if(y.length===0)throw new X(`Received no input writes for ${JSON.stringify(this.inputChannels,null,2)}`);We(p,v,[{name:wt,writes:y,triggers:[]}],n.getNextVersion.bind(this.checkpointer),this.triggerToNodes);let T=l?.metadata?.step!=null?l.metadata.step+1:-1,$=await n.put(g,_t(p,v,T),{source:"input",step:T,parents:l?.metadata?.parents??{}},fs(h,p.channel_versions));return await n.putWrites($,y,Pr(wt,p.id)),Cr($,l?l.metadata:void 0)}if(c.configurable?.checkpoint_id===void 0&&l?.pendingWrites!==void 0&&l.pendingWrites.length>0){let y=Tr(p,l.pendingWrites,this.nodes,v,l.config,!0,{store:this.store,checkpointer:this.checkpointer,step:(l.metadata?.step??-1)+1}),T=(l.pendingWrites??[]).filter(P=>P[0]===Le).map(P=>P.slice(1));T.length>0&&We(l.checkpoint,v,[{name:wt,writes:T,triggers:[]}],void 0,this.triggerToNodes);for(let[P,J,ie]of l.pendingWrites)[ge,V,qn].includes(J)||y[P]===void 0||y[P].writes.push([J,ie]);let $=Object.values(y).filter(P=>P.writes.length>0);$.length>0&&We(p,v,$,void 0,this.triggerToNodes)}let S=Object.values(p.versions_seen).map(y=>Object.values(y)).flat().find(y=>!!y),C=[];if(u.length===1){let{values:y,asNode:T,taskId:$}=u[0];if(T===void 0&&Object.keys(this.nodes).length===1)[T]=Object.keys(this.nodes);else if(T===void 0&&S===void 0)typeof this.inputChannels=="string"&&this.nodes[this.inputChannels]!==void 0&&(T=this.inputChannels);else if(T===void 0){let P=Object.entries(p.versions_seen).map(([J,ie])=>Object.values(ie).map(le=>[le,J])).flat().filter(([J,ie])=>ie!==V).sort(([J],[ie])=>pl(J,ie));P&&(P.length===1?T=P[0][1]:P[P.length-1][0]!==P[P.length-2][0]&&(T=P[P.length-1][1]))}if(T===void 0)throw new X('Ambiguous update, specify "asNode"');C.push({values:y,asNode:T,taskId:$})}else for(let{asNode:y,values:T,taskId:$}of u){if(y==null)throw new X('"asNode" is required when applying multiple updates');C.push({values:T,asNode:y,taskId:$})}let j=[];for(let{asNode:y,values:T,taskId:$}of C){if(this.nodes[y]===void 0)throw new X(`Node "${y.toString()}" does not exist`);let P=this.nodes[y].getWriters();if(!P.length)throw new X(`No writers found for node "${y.toString()}"`);j.push({name:y,input:T,proc:P.length>1?Qe.from(P,{omitSequenceTags:!0}):P[0],writes:[],triggers:[V],id:$??Pr(V,p.id),writers:[]})}for(let y of j)await y.proc.invoke(y.input,he({...c,store:c?.store??this.store},{runName:c.runName??`${this.getName()}UpdateState`,configurable:{[lr]:T=>y.writes.push(...T),[xt]:(T,$=!1)=>Ri(p,v,y,T,$)}}));for(let y of j){let T=y.writes.filter($=>$[0]!==$e);l!==void 0&&T.length>0&&await n.putWrites(g,T,y.id)}We(p,v,j,n.getNextVersion.bind(this.checkpointer),this.triggerToNodes);let F=fs(h,p.channel_versions),D=await n.put(g,_t(p,v,f+1),{source:"update",step:f+1,parents:l?.metadata?.parents??{}},F);for(let y of j){let T=y.writes.filter($=>$[0]===$e);T.length>0&&await n.putWrites(D,T,y.id)}return Cr(D,l?l.metadata:void 0)},o=e;for(let{updates:a}of t)o=await i(o,a);return o}async updateState(e,t,n){return this.bulkUpdateState(e,[{updates:[{values:t,asNode:n}]}])}_defaults(e){let{debug:t,streamMode:n,inputKeys:s,outputKeys:i,interruptAfter:o,interruptBefore:a,...u}=e,c=!0,l=t!==void 0?t:this.debug,p=i;p===void 0?p=this.streamChannelsAsIs:Rl(p,this.channels);let h=s;h===void 0?h=this.inputChannels:Rl(h,this.channels);let f=a??this.interruptBefore??[],g=o??this.interruptAfter??[],b;n!==void 0?(b=Array.isArray(n)?n:[n],c=typeof n=="string"):(e.configurable?.[an]!==void 0?b=["values"]:b=this.streamMode,c=!0);let _;if(this.checkpointer===!1)_=void 0;else if(e!==void 0&&e.configurable?.[de]!==void 0)_=e.configurable[de];else{if(this.checkpointer===!0)throw new Error("checkpointer: true cannot be used for root graphs.");_=this.checkpointer}let I=e.store??this.store,v=e.cache??this.cache;if(e.durability!=null&&e.checkpointDuring!=null)throw new Error("Cannot use both `durability` and `checkpointDuring` at the same time.");let S=(()=>{if(e.checkpointDuring!=null)return e.checkpointDuring===!1?"exit":"async"})(),C=e.durability??S??e?.configurable?.[ml]??"async";return[l,b,h,p,u,f,g,_,I,c,v,C]}async stream(e,t){let n=new AbortController,s={recursionLimit:this.config?.recursionLimit,...t,signal:hs(t?.signal,n.signal).signal};return new $i(await super.stream(e,s),n)}streamEvents(e,t,n){let s=new AbortController,i={recursionLimit:this.config?.recursionLimit,...t,callbacks:Gh(this.config?.callbacks,t?.callbacks),signal:hs(t?.signal,s.signal).signal};return new $i(super.streamEvents(e,i,n),s)}async _validateInput(e){return e}async _validateContext(e){return e}async*_streamIterator(e,t){let n=t?.subgraphs,s=ua(this.config,t);if(s.recursionLimit===void 0||s.recursionLimit<1)throw new Error('Passed "recursionLimit" must be at least 1.');if(this.checkpointer!==void 0&&this.checkpointer!==!1&&s.configurable===void 0)throw new Error('Checkpointer requires one or more of the following "configurable" keys: "thread_id", "checkpoint_ns", "checkpoint_id"');let i=await this._validateInput(e),{runId:o,...a}=s,[u,c,,l,p,h,f,g,b,_,I,v]=this._defaults(a);typeof p.context<"u"?p.context=await this._validateContext(p.context):p.configurable=await this._validateContext(p.configurable);let S=new ds({modes:new Set(c)});if(this.checkpointer===!0){p.configurable??={};let P=p.configurable[At]??"";p.configurable[At]=P.split(ce).map(J=>J.split(Ke)[0]).join(ce)}if(c.includes("messages")){let P=new ka(ie=>S.push(ie)),{callbacks:J}=p;if(J===void 0)p.callbacks=[P];else if(Array.isArray(J))p.callbacks=J.concat(P);else{let ie=J.copy();ie.addHandler(P,!0),p.callbacks=ie}}c.includes("custom")&&(p.writer=P=>{let J=Ch()?.configurable?.[At]?.split(ce).slice(0,-1);S.push([J??[],"custom",P])});let j=await(await xr(p))?.handleChainStart(this.toJSON(),Vh(e,"input"),o,void 0,void 0,void 0,p?.runName??this.getName()),F=Ii(this.channels),D,y,$=(async()=>{try{D=await Ia.initialize({input:i,config:p,checkpointer:g,nodes:this.nodes,channelSpecs:F,outputKeys:l,streamKeys:this.streamChannelsAsIs,store:b,cache:I,stream:S,interruptAfter:f,interruptBefore:h,manager:j,debug:this.debug,triggerToNodes:this.triggerToNodes,durability:v});let P=new Sa({loop:D,nodeFinished:p.configurable?.[Ih]});t?.subgraphs&&(D.config.configurable={...D.config.configurable,[os]:D.stream}),await this._runLoop({loop:D,runner:P,debug:u,config:p}),v==="sync"&&await Promise.all(D?.checkpointerPromises??[])}catch(P){y=P}finally{try{D&&(await D.store?.stop(),await D.cache?.stop()),await Promise.all(D?.checkpointerPromises??[])}catch(P){y=y??P}y?S.error(y):S.close()}})();try{for await(let P of S){if(P===void 0)throw new Error("Data structure error.");let[J,ie,le]=P;c.includes(ie)&&(n&&!_?yield[J,ie,le]:_?n?yield[J,le]:yield le:yield[ie,le])}}catch(P){throw await j?.handleChainError(y),P}finally{await $}await j?.handleChainEnd(D?.output??{},o,void 0,void 0,void 0)}async invoke(e,t){let n=t?.streamMode??"values",s={...t,outputKeys:t?.outputKeys??this.outputChannels,streamMode:n},i=[],o=await this.stream(e,s),a=[],u;for await(let c of o)n==="values"?yl(c)?a.push(c[V]):u=c:i.push(c);if(n==="values"){if(a.length>0){let c=a.flat(1);if(u==null)return{[V]:c};if(typeof u=="object")return{...u,[V]:c}}return u}return i}async _runLoop(e){let{loop:t,runner:n,debug:s,config:i}=e,o;try{for(;await t.tick({inputKeys:this.inputChannels});){for(let{task:a}of await t._matchCachedWrites())t._outputWrites(a.id,a.writes,!0);s&&td(t.checkpointMetadata.step,t.channels,this.streamChannelsList),s&&Pa(t.step,Object.values(t.tasks)),await n.tick({timeout:this.stepTimeout,retryPolicy:this.retryPolicy,onStepWrite:(a,u)=>{s&&rd(a,u,this.streamChannelsList)},maxConcurrency:i.maxConcurrency,signal:i.signal})}if(t.status==="out_of_steps")throw new Io([`Recursion limit of ${i.recursionLimit} reached`,"without hitting a stop condition. You can increase the",'limit by setting the "recursionLimit" config key.'].join(" "),{lc_error_code:"GRAPH_RECURSION_LIMIT"})}catch(a){if(o=a,!await t.finishAndHandleError(o))throw a}finally{o===void 0&&await t.finishAndHandleError()}}async clearCache(){await this.cache?.clear([])}};var ft=class r extends je{constructor(e=!0){super(),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"EphemeralValue"}),Object.defineProperty(this,"guard",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"value",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.guard=e}fromCheckpoint(e){let t=new r(this.guard);return typeof e<"u"&&(t.value=[e]),t}update(e){if(e.length===0){let t=this.value.length>0;return this.value=[],t}if(e.length!==1&&this.guard)throw new X("EphemeralValue can only receive one value per step.");return this.value=[e[e.length-1]],!0}get(){if(this.value.length===0)throw new ne;return this.value[0]}checkpoint(){if(this.value.length===0)throw new ne;return this.value[0]}isAvailable(){return this.value.length!==0}};var Li=class{constructor(e){Object.defineProperty(this,"path",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"ends",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Z.isRunnable(e.path)?this.path=e.path:this.path=Ne(e.path).withConfig({runName:"Branch"}),this.ends=Array.isArray(e.pathMap)?e.pathMap.reduce((t,n)=>(t[n]=n,t),{}):e.pathMap}run(e,t){return ae.registerWriter(new Ie({name:"<branch_run>",trace:!1,func:async(n,s)=>{try{return await this._route(n,s,e,t)}catch(i){throw i.name===pi.unminifiable_name&&console.warn(`[WARN]: 'NodeInterrupt' thrown in conditional edge. This is likely a bug in your graph implementation.
89
- NodeInterrupt should only be thrown inside a node, not in edge conditions.`),i}}}))}async _route(e,t,n,s){let i=await this.path.invoke(s?s(t):e,t);Array.isArray(i)||(i=[i]);let o;if(this.ends?o=i.map(u=>Ee(u)?u:this.ends[u]):o=i,o.some(u=>!u))throw new Error("Branch condition returned unknown or null destination");if(o.filter(Ee).some(u=>u.node===K))throw new X("Cannot send a packet to the END node");return await n(o,t)??e}},gs=class{constructor(){Object.defineProperty(this,"nodes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"edges",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"branches",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"entryPoint",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"compiled",{enumerable:!0,configurable:!0,writable:!0,value:!1}),this.nodes={},this.edges=new Set,this.branches={}}warnIfCompiled(e){this.compiled&&console.warn(e)}get allEdges(){return this.edges}addNode(...e){function t(s){return s.length>=1&&typeof s[0]!="string"}let n=t(e)?Array.isArray(e[0])?e[0]:Object.entries(e[0]):[[e[0],e[1],e[2]]];if(n.length===0)throw new Error("No nodes provided in `addNode`");for(let[s,i,o]of n){for(let u of[ce,Ke])if(s.includes(u))throw new Error(`"${u}" is a reserved character and is not allowed in node names.`);if(this.warnIfCompiled("Adding a node to a graph that has already been compiled. This will not be reflected in the compiled graph."),s in this.nodes)throw new Error(`Node \`${s}\` already present.`);if(s===K)throw new Error(`Node \`${s}\` is reserved.`);let a=Ne(i);this.nodes[s]={runnable:a,metadata:o?.metadata,subgraphs:ji(a)?[a]:o?.subgraphs,ends:o?.ends}}return this}addEdge(e,t){if(this.warnIfCompiled("Adding an edge to a graph that has already been compiled. This will not be reflected in the compiled graph."),e===K)throw new Error("END cannot be a start node");if(t===q)throw new Error("START cannot be an end node");if(Array.from(this.edges).some(([n])=>n===e)&&!("channels"in this))throw new Error(`Already found path for ${e}. For multiple edges, use StateGraph.`);return this.edges.add([e,t]),this}addConditionalEdges(e,t,n){let s=typeof e=="object"?e:{source:e,path:t,pathMap:n};if(this.warnIfCompiled("Adding an edge to a graph that has already been compiled. This will not be reflected in the compiled graph."),!Z.isRunnable(s.path)){let o=Array.isArray(s.pathMap)?s.pathMap.join(","):Object.keys(s.pathMap??{}).join(",");s.path=Ne(s.path).withConfig({runName:`Branch<${s.source}${o!==""?`,${o}`:""}>`.slice(0,63)})}let i=s.path.getName()==="RunnableLambda"?"condition":s.path.getName();if(this.branches[s.source]&&this.branches[s.source][i])throw new Error(`Condition \`${i}\` already present for node \`${e}\``);return this.branches[s.source]??={},this.branches[s.source][i]=new Li(s),this}setEntryPoint(e){return this.warnIfCompiled("Setting the entry point of a graph that has already been compiled. This will not be reflected in the compiled graph."),this.addEdge(q,e)}setFinishPoint(e){return this.warnIfCompiled("Setting a finish point of a graph that has already been compiled. This will not be reflected in the compiled graph."),this.addEdge(e,K)}compile({checkpointer:e,interruptBefore:t,interruptAfter:n,name:s}={}){this.validate([...Array.isArray(t)?t:[],...Array.isArray(n)?n:[]]);let i=new Fi({builder:this,checkpointer:e,interruptAfter:n,interruptBefore:t,autoValidate:!1,nodes:{},channels:{[q]:new ft,[K]:new ft},inputChannels:q,outputChannels:K,streamChannels:[],streamMode:"values",name:s});for(let[o,a]of Object.entries(this.nodes))i.attachNode(o,a);for(let[o,a]of this.edges)i.attachEdge(o,a);for(let[o,a]of Object.entries(this.branches))for(let[u,c]of Object.entries(a))i.attachBranch(o,u,c);return i.validate()}validate(e){let t=new Set([...this.allEdges].map(([s,i])=>s));for(let[s]of Object.entries(this.branches))t.add(s);for(let s of t)if(s!==q&&!(s in this.nodes))throw new Error(`Found edge starting at unknown node \`${s}\``);let n=new Set([...this.allEdges].map(([s,i])=>i));for(let[s,i]of Object.entries(this.branches))for(let o of Object.values(i))if(o.ends!=null)for(let a of Object.values(o.ends))n.add(a);else{n.add(K);for(let a of Object.keys(this.nodes))a!==s&&n.add(a)}for(let s of Object.values(this.nodes))for(let i of s.ends??[])n.add(i);for(let s of Object.keys(this.nodes))if(!n.has(s))throw new ko([`Node \`${s}\` is not reachable.`,"","If you are returning Command objects from your node,",'make sure you are passing names of potential destination nodes as an "ends" array','into ".addNode(..., { ends: ["node1", "node2"] })".'].join(`
90
- `),{lc_error_code:"UNREACHABLE_NODE"});for(let s of n)if(s!==K&&!(s in this.nodes))throw new Error(`Found edge ending at unknown node \`${s}\``);if(e){for(let s of e)if(!(s in this.nodes))throw new Error(`Interrupt node \`${s}\` is not present`)}this.compiled=!0}},Fi=class extends ms{constructor({builder:e,...t}){super(t),Object.defineProperty(this,"builder",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.builder=e}attachNode(e,t){this.channels[e]=new ft,this.nodes[e]=new et({channels:[],triggers:[],metadata:t.metadata,subgraphs:t.subgraphs,ends:t.ends}).pipe(t.runnable).pipe(new ae([{channel:e,value:Je}],[ee])),this.streamChannels.push(e)}attachEdge(e,t){if(t===K){if(e===q)throw new Error("Cannot have an edge from START to END");this.nodes[e].writers.push(new ae([{channel:K,value:Je}],[ee]))}else this.nodes[t].triggers.push(e),this.nodes[t].channels.push(e)}attachBranch(e,t,n){e===q&&!this.nodes[q]&&(this.nodes[q]=Ta.subscribeTo(q,{tags:[ee]})),this.nodes[e].pipe(n.run(i=>{let o=i.map(a=>Ee(a)?a:{channel:a===K?K:`branch:${e}:${t}:${a}`,value:Je});return new ae(o,[ee])}));let s=n.ends?Object.values(n.ends):Object.keys(this.nodes);for(let i of s)if(i!==K){let o=`branch:${e}:${t}:${i}`;this.channels[o]=new ft,this.nodes[i].triggers.push(o),this.nodes[i].channels.push(o)}}async getGraphAsync(e){let t=e?.xray,n=new $u,s={[q]:n.addNode({schema:oe.any()},q)},i={},o={};t&&(o=Object.fromEntries((await Pt(this.getSubgraphsAsync())).filter(c=>id(c[1]))));function a(c,l,p,h=!1){if(l===K&&i[K]===void 0&&(i[K]=n.addNode({schema:oe.any()},K)),s[c]!==void 0){if(i[l]===void 0)throw new Error(`End node ${l} not found!`);return n.addEdge(s[c],i[l],p!==l?p:void 0,h)}}for(let[c,l]of Object.entries(this.builder.nodes)){let p=Fe(c),h=l.runnable,f=l.metadata??{};if(this.interruptBefore?.includes(c)&&this.interruptAfter?.includes(c)?f.__interrupt="before,after":this.interruptBefore?.includes(c)?f.__interrupt="before":this.interruptAfter?.includes(c)&&(f.__interrupt="after"),t){let g=typeof t=="number"?t-1:t,b=o[c]!==void 0?await o[c].getGraphAsync({...e,xray:g}):h.getGraph(e);if(b.trimFirstNode(),b.trimLastNode(),Object.keys(b.nodes).length>1){let v=function(C){return C?C.lc_runnable:!1},S=function(C,j){if(C!==void 0&&!xu(C))return C;if(v(j))try{let F=j.getName();return F=F.startsWith("Runnable")?F.slice(8):F,F}catch{return j.getName()}else return j.name??"UnknownSchema"},[_,I]=n.extend(b,p);if(_===void 0)throw new Error(`Could not extend subgraph "${c}" due to missing entrypoint.`);I!==void 0&&(s[p]={name:S(I.id,I.data),...I}),i[p]={name:S(_.id,_.data),..._}}else{let _=n.addNode(h,p,f);s[p]=_,i[p]=_}}else{let g=n.addNode(h,p,f);s[p]=g,i[p]=g}}let u=[...this.builder.allEdges].sort(([c],[l])=>c<l?-1:l>c?1:0);for(let[c,l]of u)a(Fe(c),Fe(l));for(let[c,l]of Object.entries(this.builder.branches)){let p={...Object.fromEntries(Object.keys(this.builder.nodes).filter(h=>h!==c).map(h=>[Fe(h),Fe(h)])),[K]:K};for(let h of Object.values(l)){let f;h.ends!==void 0?f=h.ends:f=p;for(let[g,b]of Object.entries(f))a(Fe(c),Fe(b),g,!0)}}for(let[c,l]of Object.entries(this.builder.nodes))if(l.ends!==void 0)for(let p of l.ends)a(Fe(c),Fe(p),void 0,!0);return n}getGraph(e){let t=e?.xray,n=new $u,s={[q]:n.addNode({schema:oe.any()},q)},i={},o={};t&&(o=Object.fromEntries(cn(this.getSubgraphs()).filter(c=>id(c[1]))));function a(c,l,p,h=!1){return l===K&&i[K]===void 0&&(i[K]=n.addNode({schema:oe.any()},K)),n.addEdge(s[c],i[l],p!==l?p:void 0,h)}for(let[c,l]of Object.entries(this.builder.nodes)){let p=Fe(c),h=l.runnable,f=l.metadata??{};if(this.interruptBefore?.includes(c)&&this.interruptAfter?.includes(c)?f.__interrupt="before,after":this.interruptBefore?.includes(c)?f.__interrupt="before":this.interruptAfter?.includes(c)&&(f.__interrupt="after"),t){let g=typeof t=="number"?t-1:t,b=o[c]!==void 0?o[c].getGraph({...e,xray:g}):h.getGraph(e);if(b.trimFirstNode(),b.trimLastNode(),Object.keys(b.nodes).length>1){let v=function(C){return C?C.lc_runnable:!1},S=function(C,j){if(C!==void 0&&!xu(C))return C;if(v(j))try{let F=j.getName();return F=F.startsWith("Runnable")?F.slice(8):F,F}catch{return j.getName()}else return j.name??"UnknownSchema"},[_,I]=n.extend(b,p);if(_===void 0)throw new Error(`Could not extend subgraph "${c}" due to missing entrypoint.`);I!==void 0&&(s[p]={name:S(I.id,I.data),...I}),i[p]={name:S(_.id,_.data),..._}}else{let _=n.addNode(h,p,f);s[p]=_,i[p]=_}}else{let g=n.addNode(h,p,f);s[p]=g,i[p]=g}}let u=[...this.builder.allEdges].sort(([c],[l])=>c<l?-1:l>c?1:0);for(let[c,l]of u)a(Fe(c),Fe(l));for(let[c,l]of Object.entries(this.builder.branches)){let p={...Object.fromEntries(Object.keys(this.builder.nodes).filter(h=>h!==c).map(h=>[Fe(h),Fe(h)])),[K]:K};for(let h of Object.values(l)){let f;h.ends!==void 0?f=h.ends:f=p;for(let[g,b]of Object.entries(f))a(Fe(c),Fe(b),g,!0)}}return n}};function id(r){return typeof r.attachNode=="function"&&typeof r.attachEdge=="function"}function Fe(r){return r==="subgraph"?`"${r}"`:r}var dn=(r,e)=>r.size===e.size&&[...r].every(t=>e.has(t)),Ra=class r extends je{constructor(e){super(),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"NamedBarrierValue"}),Object.defineProperty(this,"names",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"seen",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.names=e,this.seen=new Set}fromCheckpoint(e){let t=new r(this.names);return typeof e<"u"&&(t.seen=new Set(e)),t}update(e){let t=!1;for(let n of e)if(this.names.has(n))this.seen.has(n)||(this.seen.add(n),t=!0);else throw new X(`Value ${JSON.stringify(n)} not in names ${JSON.stringify(this.names)}`);return t}get(){if(!dn(this.names,this.seen))throw new ne}checkpoint(){return[...this.seen]}consume(){return this.seen&&this.names&&dn(this.seen,this.names)?(this.seen=new Set,!0):!1}isAvailable(){return!!this.names&&dn(this.names,this.seen)}},Na=class r extends je{constructor(e){super(),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"NamedBarrierValueAfterFinish"}),Object.defineProperty(this,"names",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"seen",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"finished",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.names=e,this.seen=new Set,this.finished=!1}fromCheckpoint(e){let t=new r(this.names);if(typeof e<"u"){let[n,s]=e;t.seen=new Set(n),t.finished=s}return t}update(e){let t=!1;for(let n of e)if(this.names.has(n)&&!this.seen.has(n))this.seen.add(n),t=!0;else if(!this.names.has(n))throw new X(`Value ${JSON.stringify(n)} not in names ${JSON.stringify(this.names)}`);return t}get(){if(!this.finished||!dn(this.names,this.seen))throw new ne}checkpoint(){return[[...this.seen],this.finished]}consume(){return this.finished&&this.seen&&this.names&&dn(this.seen,this.names)?(this.seen=new Set,this.finished=!1,!0):!1}finish(){return!this.finished&&this.names&&dn(this.names,this.seen)?(this.finished=!0,!0):!1}isAvailable(){return this.finished&&!!this.names&&dn(this.names,this.seen)}};var $y="lg:",jl=class{constructor(){Object.defineProperty(this,"_map",{enumerable:!0,configurable:!0,writable:!0,value:new WeakMap}),Object.defineProperty(this,"_extensionCache",{enumerable:!0,configurable:!0,writable:!0,value:new Map})}get(e){return this._map.get(e)}extend(e,t){let n=this.get(e);this._map.set(e,t(n))}remove(e){return this._map.delete(e),this}has(e){return this._map.has(e)}getChannelsForSchema(e){let t={},n=Ao(e);for(let[s,i]of Object.entries(n)){let o=this.get(i);o?.reducer?t[s]=new cr(o.reducer.fn,o.default):t[s]=new Ht}return t}getExtendedChannelSchemas(e,t){if(Object.keys(t).length===0)return e;let n=Object.entries(t).filter(([,o])=>o===!0).sort(([o],[a])=>o.localeCompare(a)).map(([o,a])=>`${o}:${a}`).join("|"),s=this._extensionCache.get(n)??new WeakMap;if(s.has(e))return s.get(e);let i=e;if(t.withReducerSchema||t.withJsonSchemaExtrasAsDescription){let o=Object.entries(Ao(e)).map(([a,u])=>{let c=this.get(u),l=t.withReducerSchema?c?.reducer?.schema??u:u;if(t.withJsonSchemaExtrasAsDescription&&c?.jsonSchemaExtra){let p=$t(l)??$t(u),h=JSON.stringify({...c.jsonSchemaExtra,description:p});l=l.describe(`${$y}${h}`)}return[a,l]});i=Mu(e,Object.fromEntries(o)),ai(i)&&(i._def.unknownKeys="strip")}return t.asPartial&&(i=li(i)),s.set(e,i),this._extensionCache.set(n,s),i}},Ui=new jl;function od(r,e){if(e.reducer&&!e.default){let t=Du(r);t!=null&&(e.default=t)}if(e.reducer){let t=Object.assign(r,{lg_reducer_schema:e.reducer?.schema??r});return Ui.extend(t,()=>e),t}else return Ui.extend(r,()=>e),r}var hr="__root__",Ml=Symbol.for("langgraph.state.partial"),mn=class extends gs{constructor(e,t){if(super(),Object.defineProperty(this,"channels",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"waitingEdges",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"_schemaDefinition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_schemaRuntimeDefinition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_inputDefinition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_inputRuntimeDefinition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_outputDefinition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_outputRuntimeDefinition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_schemaDefinitions",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_metaRegistry",{enumerable:!0,configurable:!0,writable:!0,value:Ui}),Object.defineProperty(this,"_configSchema",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_configRuntimeSchema",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Ky(e)){let n=this._metaRegistry.getChannelsForSchema(e.state),s=e.input!=null?this._metaRegistry.getChannelsForSchema(e.input):n,i=e.output!=null?this._metaRegistry.getChannelsForSchema(e.output):n;this._schemaDefinition=n,this._schemaRuntimeDefinition=e.state,this._inputDefinition=s,this._inputRuntimeDefinition=e.input??Ml,this._outputDefinition=i,this._outputRuntimeDefinition=e.output??e.state}else if(Lt(e)){let n=this._metaRegistry.getChannelsForSchema(e);this._schemaDefinition=n,this._schemaRuntimeDefinition=e,this._inputDefinition=n,this._inputRuntimeDefinition=Ml,this._outputDefinition=n,this._outputRuntimeDefinition=e}else if(By(e))this._schemaDefinition=e.input.spec,this._inputDefinition=e.input.spec,this._outputDefinition=e.output.spec;else if(zy(e))this._schemaDefinition=e.stateSchema.spec,this._inputDefinition=e.input?.spec??this._schemaDefinition,this._outputDefinition=e.output?.spec??this._schemaDefinition;else if(Fy(e)||ad(e)){let n=ad(e)?e.spec:e;this._schemaDefinition=n}else if(Uy(e)){let n=Ly(e.channels);this._schemaDefinition=n}else throw new Error("Invalid StateGraph input. Make sure to pass a valid Annotation.Root or Zod schema.");this._inputDefinition??=this._schemaDefinition,this._outputDefinition??=this._schemaDefinition,this._addSchema(this._schemaDefinition),this._addSchema(this._inputDefinition),this._addSchema(this._outputDefinition),Lt(t)&&(this._configRuntimeSchema=t)}get allEdges(){return new Set([...this.edges,...Array.from(this.waitingEdges).flatMap(([e,t])=>e.map(n=>[n,t]))])}_addSchema(e){if(!this._schemaDefinitions.has(e)){this._schemaDefinitions.set(e,e);for(let[t,n]of Object.entries(e)){let s;if(typeof n=="function"?s=n():s=n,this.channels[t]!==void 0){if(this.channels[t]!==s&&s.lc_graph_name!=="LastValue")throw new Error(`Channel "${t}" already exists with a different type.`)}else this.channels[t]=s}}}addNode(...e){function t(s){return s.length>=1&&typeof s[0]!="string"}let n=t(e)?Array.isArray(e[0])?e[0]:Object.entries(e[0]).map(([s,i])=>[s,i,i[Symbol.for("langgraph.state.node")]??void 0]):[[e[0],e[1],e[2]]];if(n.length===0)throw new Error("No nodes provided in `addNode`");for(let[s,i,o]of n){if(s in this.channels)throw new Error(`${s} is already being used as a state attribute (a.k.a. a channel), cannot also be used as a node name.`);for(let p of[ce,Ke])if(s.includes(p))throw new Error(`"${p}" is a reserved character and is not allowed in node names.`);if(this.warnIfCompiled("Adding a node to a graph that has already been compiled. This will not be reflected in the compiled graph."),s in this.nodes)throw new Error(`Node \`${s}\` already present.`);if(s===K||s===q)throw new Error(`Node \`${s}\` is reserved.`);let a=this._schemaDefinition;o?.input!==void 0&&(Lt(o.input)?a=this._metaRegistry.getChannelsForSchema(o.input):o.input.spec!==void 0&&(a=o.input.spec)),a!==void 0&&this._addSchema(a);let u;Z.isRunnable(i)?u=i:typeof i=="function"?u=new Ie({func:i,name:s,trace:!1}):u=Ne(i);let c=o?.cachePolicy;typeof c=="boolean"&&(c=c?{}:void 0);let l={runnable:u,retryPolicy:o?.retryPolicy,cachePolicy:c,metadata:o?.metadata,input:a??this._schemaDefinition,subgraphs:ji(u)?[u]:o?.subgraphs,ends:o?.ends,defer:o?.defer};this.nodes[s]=l}return this}addEdge(e,t){if(typeof e=="string")return super.addEdge(e,t);this.compiled&&console.warn("Adding an edge to a graph that has already been compiled. This will not be reflected in the compiled graph.");for(let n of e){if(n===K)throw new Error("END cannot be a start node");if(!Object.keys(this.nodes).some(s=>s===n))throw new Error(`Need to add a node named "${n}" first`)}if(t===K)throw new Error("END cannot be an end node");if(!Object.keys(this.nodes).some(n=>n===t))throw new Error(`Need to add a node named "${t}" first`);return this.waitingEdges.add([e,t]),this}addSequence(e){let t=Array.isArray(e)?e:Object.entries(e).map(([s,i])=>[s,i,i[Symbol.for("langgraph.state.node")]??void 0]);if(t.length===0)throw new Error("Sequence requires at least one node.");let n;for(let[s,i,o]of t){if(s in this.nodes)throw new Error(`Node names must be unique: node with the name "${s}" already exists.`);let a=s;this.addNode(a,i,o),n!=null&&this.addEdge(n,a),n=a}return this}compile({checkpointer:e,store:t,cache:n,interruptBefore:s,interruptAfter:i,name:o,description:a}={}){this.validate([...Array.isArray(s)?s:[],...Array.isArray(i)?i:[]]);let u=Object.keys(this._schemaDefinitions.get(this._outputDefinition)),c=u.length===1&&u[0]===hr?hr:u,l=Object.keys(this.channels),p=l.length===1&&l[0]===hr?hr:l,h=new zi({builder:this,checkpointer:e,interruptAfter:i,interruptBefore:s,autoValidate:!1,nodes:{},channels:{...this.channels,[q]:new ft},inputChannels:q,outputChannels:c,streamChannels:p,streamMode:"updates",store:t,cache:n,name:o,description:a});h.attachNode(q);for(let[f,g]of Object.entries(this.nodes))h.attachNode(f,g);h.attachBranch(q,bl,ud(),{withReader:!1});for(let[f]of Object.entries(this.nodes))h.attachBranch(f,bl,ud(),{withReader:!1});for(let[f,g]of this.edges)h.attachEdge(f,g);for(let[f,g]of this.waitingEdges)h.attachEdge(f,g);for(let[f,g]of Object.entries(this.branches))for(let[b,_]of Object.entries(g))h.attachBranch(f,b,_);return h.validate()}};function Ly(r){let e={};for(let[t,n]of Object.entries(r))if(t===hr)e[t]=sa(n);else{let s=t;e[t]=sa(n)}return e}var zi=class extends Fi{constructor({description:e,...t}){super(t),Object.defineProperty(this,"description",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_metaRegistry",{enumerable:!0,configurable:!0,writable:!0,value:Ui}),this.description=e}attachNode(e,t){let n;e===q?n=Object.entries(this.builder._schemaDefinitions.get(this.builder._inputDefinition)).map(([u])=>u):n=Object.keys(this.builder.channels);function s(u){if(Te(u))return u.graph===Ce.PARENT?null:u._updateAsTuples();if(Array.isArray(u)&&u.length>0&&u.some(c=>Te(c))){let c=[];for(let l of u)if(Te(l)){if(l.graph===Ce.PARENT)continue;c.push(...l._updateAsTuples())}else c.push([hr,l]);return c}else if(u!=null)return[[hr,u]];return null}let i=e;function o(u){if(u){if(Te(u))return u.graph===Ce.PARENT?null:u._updateAsTuples().filter(([c])=>n.includes(c));if(Array.isArray(u)&&u.length>0&&u.some(Te)){let c=[];for(let l of u)if(Te(l)){if(l.graph===Ce.PARENT)continue;c.push(...l._updateAsTuples().filter(([p])=>n.includes(p)))}else{let p=o(l);p&&c.push(...p??[])}return c}else{if(typeof u=="object"&&!Array.isArray(u))return Object.entries(u).filter(([c])=>n.includes(c));{let c=Array.isArray(u)?"array":typeof u;throw new X(`Expected node "${i.toString()}" to return an object or an array containing at least one Command object, received ${c}`,{lc_error_code:"INVALID_GRAPH_NODE_RETURN_VALUE"})}}}else return null}let a=[{value:Je,mapper:new Ie({func:n.length&&n[0]===hr?s:o,trace:!1,recurse:!1})}];if(e===q)this.nodes[e]=new et({tags:[ee],triggers:[q],channels:[q],writers:[new ae(a,[ee])]});else{let u=t?.input??this.builder._schemaDefinition,c=Object.fromEntries(Object.keys(this.builder._schemaDefinitions.get(u)).map(h=>[h,h])),l=Object.keys(c).length===1&&hr in c,p=`branch:to:${e}`;this.channels[p]=t?.defer?new ra:new ft(!1),this.nodes[e]=new et({triggers:[p],channels:l?Object.keys(c):c,writers:[new ae(a,[ee])],mapper:l?void 0:h=>Object.fromEntries(Object.entries(h).filter(([f])=>f in c)),bound:t?.runnable,metadata:t?.metadata,retryPolicy:t?.retryPolicy,cachePolicy:t?.cachePolicy,subgraphs:t?.subgraphs,ends:t?.ends})}}attachEdge(e,t){if(t!==K){if(typeof e=="string")this.nodes[e].writers.push(new ae([{channel:`branch:to:${t}`,value:null}],[ee]));else if(Array.isArray(e)){let n=`join:${e.join("+")}:${t}`;this.channels[n]=this.builder.nodes[t].defer?new Na(new Set(e)):new Ra(new Set(e)),this.nodes[t].triggers.push(n);for(let s of e)this.nodes[s].writers.push(new ae([{channel:n,value:s}],[ee]))}}}attachBranch(e,t,n,s={withReader:!0}){let i=async(o,a)=>{let u=o.filter(l=>l!==K);if(!u.length)return;let c=u.map(l=>Ee(l)?l:{channel:l===K?l:`branch:to:${l}`,value:e});await ae.doWrite({...a,tags:(a.tags??[]).concat([ee])},c)};this.nodes[e].writers.push(n.run(i,s.withReader?o=>fa.doRead(o,this.streamChannels??this.outputChannels,!0):void 0))}async _validateInput(e){if(e==null)return e;let t=(()=>{let n=this.builder._inputRuntimeDefinition,s=this.builder._schemaRuntimeDefinition,i=o=>{if(o!=null)return this._metaRegistry.getExtendedChannelSchemas(o,{withReducerSchema:!0})};if(Lt(n))return i(n);if(n===Ml)return li(i(s))})();if(Te(e)){let n=e;return e.update&&t!=null&&(n.update=ci(t,e.update)),n}return t!=null?ci(t,e):e}async _validateContext(e){let t=this.builder._configRuntimeSchema;return Lt(t)&&ci(t,e),e}};function Fy(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)&&Object.keys(r).length>0&&Object.values(r).every(e=>typeof e=="function"||hl(e))}function ad(r){return typeof r=="object"&&r!==null&&"lc_graph_name"in r&&r.lc_graph_name==="AnnotationRoot"}function Uy(r){return typeof r=="object"&&r!==null&&r.channels!==void 0}function zy(r){return typeof r=="object"&&r!==null&&r.stateSchema!==void 0}function By(r){return typeof r=="object"&&r!==null&&r.stateSchema===void 0&&r.input!==void 0&&r.output!==void 0}function Ky(r){return!(typeof r!="object"||r==null||!("state"in r)||!Lt(r.state)||"input"in r&&!Lt(r.input)||"output"in r&&!Lt(r.output))}function Wy(r){if(Ee(r))return[r];let e=[];Te(r)?e.push(r):Array.isArray(r)&&e.push(...r.filter(Te));let t=[];for(let n of e){if(n.graph===Ce.PARENT)throw new fi(n);Ee(n.goto)||typeof n.goto=="string"?t.push(n.goto):Array.isArray(n.goto)&&t.push(...n.goto)}return t}function ud(){let r=new Ie({func:Wy,tags:[ee],trace:!1,recurse:!1,name:"<control_branch>"});return new Li({path:r})}var Dl="__remove_all__";function Rr(r,e){let t=Array.isArray(r)?r:[r],n=Array.isArray(e)?e:[e],s=t.map(Dt),i=n.map(Dt);for(let l of s)(l.id===null||l.id===void 0)&&(l.id=vu(),l.lc_kwargs.id=l.id);let o;for(let l=0;l<i.length;l+=1){let p=i[l];(p.id===null||p.id===void 0)&&(p.id=vu(),p.lc_kwargs.id=p.id),p.getType()==="remove"&&p.id===Dl&&(o=l)}if(o!=null)return i.slice(o+1);let a=[...s],u=new Map(a.map((l,p)=>[l.id,p])),c=new Set;for(let l of i){let p=u.get(l.id);if(p!==void 0)l.getType()==="remove"?c.add(l.id):(c.delete(l.id),a[p]=l);else{if(l.getType()==="remove")throw new Error(`Attempting to delete a message with an ID that doesn't exist ('${l.id}')`);u.set(l.id,a.length),a.push(l)}}return a.filter(l=>!c.has(l.id))}var cd=function(e,t){let{name:n,checkpointer:s,store:i,cache:o}=typeof e=="string"?{name:e,checkpointer:void 0,store:void 0}:e;if(Rh(t)||Nh(t))throw new Error("Generators are disallowed as entrypoints. For streaming responses, use config.write.");let a="updates",u=Jh(n,t);function c(f){return typeof f=="object"&&f!==null&&"__lg_type"in f&&f.__lg_type==="__pregel_final"}let l=new Ie({name:"pluckReturnValue",func:f=>c(f)?f.value:f}),p=new Ie({name:"pluckSaveValue",func:f=>c(f)?f.save:f}),h=new et({bound:u,triggers:[q],channels:[q],writers:[new ae([{channel:K,value:Je,mapper:l},{channel:un,value:Je,mapper:p}],[ee])]});return new ms({name:n,checkpointer:s,nodes:{[n]:h},channels:{[q]:new ft,[K]:new Ht,[un]:new Ht},inputChannels:q,outputChannels:K,streamChannels:K,streamMode:a,store:i,cache:o})};cd.final=function({value:e,save:t}){return{value:e,save:t,__lg_type:"__pregel_final"}};var Gy=lt.Root({messages:lt({reducer:Rr,default:()=>[]})}),ld={reducer:{fn:Rr},jsonSchemaExtra:{langgraph_type:"messages"},default:()=>[]},qy=oe.object({messages:od(oe.custom(),ld)});async function $l(r,e,t){if(t===void 0)throw new Error(["Unable to dispatch a custom event without a parent run id.",'"dispatchCustomEvent" can only be called from within an existing run (e.g.,',"inside a tool or a RunnableLambda).",`
86
+ `)].join(""))}var $i=class extends Mu{constructor(e,t){let n=e.getReader(),s=t??new AbortController;super({start(i){return o();function o(){return n.read().then(({done:a,value:u})=>{if(a){i.close();return}return i.enqueue(u),o()})}}}),Object.defineProperty(this,"_abortController",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_innerReader",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._abortController=s,this._innerReader=n}async cancel(e){this._abortController.abort(e),this._innerReader.releaseLock()}get signal(){return this._abortController.signal}},ms=class extends Mu{get closed(){return this._closed}constructor(e){let t,n=new Promise(s=>{t=s});super({start:s=>{t(s)}}),Object.defineProperty(this,"modes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"controller",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"passthroughFn",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_closed",{enumerable:!0,configurable:!0,writable:!0,value:!1}),n.then(s=>{this.controller=s}),this.passthroughFn=e.passthroughFn,this.modes=e.modes}push(e){this.passthroughFn?.(e),this.controller.enqueue(e)}close(){try{this.controller.close()}catch{}finally{this._closed=!0}}error(e){this.controller.error(e)}};var ka=Symbol.for("INPUT_DONE"),Tl=Symbol.for("INPUT_RESUMING"),Ny=25;function jy(...r){return new ms({passthroughFn:e=>{for(let t of r)t.modes.has(e[1])&&t.push(e)},modes:new Set(r.flatMap(e=>Array.from(e.modes)))})}var Rl=class extends Ei{constructor(e){super(),Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"queue",{enumerable:!0,configurable:!0,writable:!0,value:Promise.resolve()}),this.cache=e}async get(e){return this.enqueueOperation("get",e)}async set(e){return this.enqueueOperation("set",e)}async clear(e){return this.enqueueOperation("clear",e)}async stop(){await this.queue}enqueueOperation(e,...t){let n=this.queue.then(()=>this.cache[e](...t));return this.queue=n.then(()=>{},()=>{}),n}},Sa=class r{get isResuming(){let e=!1;if(q in this.checkpoint.channel_versions)e=!0;else for(let u in this.checkpoint.channel_versions)if(Object.prototype.hasOwnProperty.call(this.checkpoint.channel_versions,u)){e=!0;break}let n=this.config.configurable?.[Vt]!==void 0&&this.config.configurable?.[Vt],s=this.input===null||this.input===void 0,i=Te(this.input)&&this.input.resume!=null,o=this.input===Tl,a=!this.isNested&&this.config.metadata?.run_id!==void 0&&this.checkpointMetadata?.run_id!==void 0&&this.config.metadata.run_id===this.checkpointMetadata?.run_id;return e&&(n||s||i||o||a)}constructor(e){Object.defineProperty(this,"input",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"output",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"config",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointerGetNextVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"channels",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpoint",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointIdSaved",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointConfig",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointMetadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointNamespace",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointPendingWrites",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"checkpointPreviousVersions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"step",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"stop",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"durability",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"outputKeys",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"streamKeys",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"nodes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"skipDoneTasks",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"prevCheckpointConfig",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:"pending"}),Object.defineProperty(this,"tasks",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"stream",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointerPromises",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"isNested",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_checkpointerChainedPromise",{enumerable:!0,configurable:!0,writable:!0,value:Promise.resolve()}),Object.defineProperty(this,"store",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"manager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"interruptAfter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"interruptBefore",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"toInterrupt",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"debug",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"triggerToNodes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.input=e.input,this.checkpointer=e.checkpointer,this.checkpointer!==void 0?this.checkpointerGetNextVersion=this.checkpointer.getNextVersion.bind(this.checkpointer):this.checkpointerGetNextVersion=td,this.checkpoint=e.checkpoint,this.checkpointMetadata=e.checkpointMetadata,this.checkpointPreviousVersions=e.checkpointPreviousVersions,this.channels=e.channels,this.checkpointPendingWrites=e.checkpointPendingWrites,this.step=e.step,this.stop=e.stop,this.config=e.config,this.checkpointConfig=e.checkpointConfig,this.isNested=e.isNested,this.manager=e.manager,this.outputKeys=e.outputKeys,this.streamKeys=e.streamKeys,this.nodes=e.nodes,this.skipDoneTasks=e.skipDoneTasks,this.store=e.store,this.cache=e.cache?new Rl(e.cache):void 0,this.stream=e.stream,this.checkpointNamespace=e.checkpointNamespace,this.prevCheckpointConfig=e.prevCheckpointConfig,this.interruptAfter=e.interruptAfter,this.interruptBefore=e.interruptBefore,this.durability=e.durability,this.debug=e.debug,this.triggerToNodes=e.triggerToNodes}static async initialize(e){let{config:t,stream:n}=e;n!==void 0&&t.configurable?.[as]!==void 0&&(n=jy(n,t.configurable[as]));let s=t.configurable?!("checkpoint_id"in t.configurable):!0,i=t.configurable?.[vt];t.configurable&&i&&(i.subgraphCounter>0&&(t=Xe(t,{[At]:[t.configurable[At],i.subgraphCounter.toString()].join(le)})),i.subgraphCounter+=1);let o=xt in(t.configurable??{});!o&&t.configurable?.checkpoint_ns!==void 0&&t.configurable?.checkpoint_ns!==""&&(t=Xe(t,{checkpoint_ns:"",checkpoint_id:void 0}));let a=t;t.configurable?.[Be]!==void 0&&t.configurable?.[Be]?.[t.configurable?.checkpoint_ns]&&(a=Xe(t,{checkpoint_id:t.configurable[Be][t.configurable?.checkpoint_ns]}));let u=t.configurable?.checkpoint_ns?.split(le)??[],c=await e.checkpointer?.getTuple(a)??{config:t,checkpoint:Ai(),metadata:{source:"input",step:-2,parents:{}},pendingWrites:[]};a={...t,...c.config,configurable:{checkpoint_ns:"",...t.configurable,...c.config.configurable}};let l=c.parentConfig,p=Wt(c.checkpoint),h={...c.metadata},f=c.pendingWrites??[],g=Sr(e.channelSpecs,p),b=(h.step??0)+1,_=b+(t.recursionLimit??Ny)+1,P={...p.channel_versions},v=e.store?new Pi(e.store):void 0;return v&&await v.start(),new r({input:e.input,config:t,checkpointer:e.checkpointer,checkpoint:p,checkpointMetadata:h,checkpointConfig:a,prevCheckpointConfig:l,checkpointNamespace:u,channels:g,isNested:o,manager:e.manager,skipDoneTasks:s,step:b,stop:_,checkpointPreviousVersions:P,checkpointPendingWrites:f,outputKeys:e.outputKeys??[],streamKeys:e.streamKeys??[],nodes:e.nodes,stream:n,store:v,cache:e.cache,interruptAfter:e.interruptAfter,interruptBefore:e.interruptBefore,durability:e.durability,debug:e.debug,triggerToNodes:e.triggerToNodes})}_checkpointerPutAfterPrevious(e){this._checkpointerChainedPromise=this._checkpointerChainedPromise.then(()=>this.checkpointer?.put(e.config,e.checkpoint,e.metadata,e.newVersions)),this.checkpointerPromises.push(this._checkpointerChainedPromise)}putWrites(e,t){let n=t;if(n.length===0)return;n.every(([o])=>o in na)&&(n=Array.from(new Map(n.map(o=>[o[0],o])).values())),this.checkpointPendingWrites=this.checkpointPendingWrites.filter(o=>o[0]!==e);for(let[o,a]of n)this.checkpointPendingWrites.push([e,o,a]);let s=Xe(this.checkpointConfig,{[At]:this.config.configurable?.checkpoint_ns??"",[ua]:this.checkpoint.id});if(this.durability!=="exit"&&this.checkpointer!=null&&this.checkpointerPromises.push(this.checkpointer.putWrites(s,n,e)),this.tasks&&this._outputWrites(e,n),!t.length||!this.cache||!this.tasks)return;let i=this.tasks[e];i==null||i.cache_key==null||t[0][0]===ge||t[0][0]===V||this.cache.set([{key:[i.cache_key.ns,i.cache_key.key],value:i.writes,ttl:i.cache_key.ttl}])}_outputWrites(e,t,n=!1){let s=this.tasks[e];if(s!==void 0){if(s.config!==void 0&&(s.config.tags??[]).includes(ee))return;if(t.length>0)if(t[0][0]===V){if(s.path?.[0]===$e&&s.path?.at(-1)===!0)return;let i=t.filter(o=>o[0]===V).flatMap(o=>o[1]);this._emit([["updates",{[V]:i}],["values",{[V]:i}]])}else t[0][0]!==ge&&this._emit(pn(fr(qh(this.outputKeys,[[s,t]],n),"updates")));n||this._emit(pn(fr(nd([[s,t]],this.streamKeys),"tasks")))}}async _matchCachedWrites(){if(!this.cache)return[];let e=[],t=([o,a])=>`ns:${o.join(",")}|key:${a}`,n=[],s={};for(let o of Object.values(this.tasks))o.cache_key!=null&&!o.writes.length&&(n.push([o.cache_key.ns,o.cache_key.key]),s[t([o.cache_key.ns,o.cache_key.key])]=o);if(n.length===0)return[];let i=await this.cache.get(n);for(let{key:o,value:a}of i){let u=s[t(o)];u!=null&&(u.writes.push(...a),e.push({task:u,result:a}))}return e}async tick(e){this.store&&!this.store.isRunning&&await this.store?.start();let{inputKeys:t=[]}=e;if(this.status!=="pending")throw new Error(`Cannot tick when status is no longer "pending". Current status: "${this.status}"`);if(![ka,Tl].includes(this.input))await this._first(t);else{if(this.toInterrupt.length>0)throw this.status="interrupt_before",new Or;if(Object.values(this.tasks).every(i=>i.writes.length>0)){let i=Object.values(this.tasks).flatMap(a=>a.writes);We(this.checkpoint,this.channels,Object.values(this.tasks),this.checkpointerGetNextVersion,this.triggerToNodes);let o=await Pt(fr(va(this.outputKeys,i,this.channels),"values"));if(this._emit(o),this.checkpointPendingWrites=[],await this._putCheckpoint({source:"loop"}),Ni(this.checkpoint,this.interruptAfter,Object.values(this.tasks)))throw this.status="interrupt_after",new Or;this.config.configurable?.[Vt]!==void 0&&delete this.config.configurable?.[Vt]}else return!1}if(this.step>this.stop)return this.status="out_of_steps",!1;let n=Nr(this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,this.config,!0,{step:this.step,checkpointer:this.checkpointer,isResuming:this.isResuming,manager:this.manager,store:this.store,stream:this.stream});if(this.tasks=n,this.checkpointer&&this._emit(await Pt(fr(sd(this.checkpointConfig,this.channels,this.streamKeys,this.checkpointMetadata,Object.values(this.tasks),this.checkpointPendingWrites,this.prevCheckpointConfig,this.outputKeys),"checkpoints"))),Object.values(this.tasks).length===0)return this.status="done",!1;if(this.skipDoneTasks&&this.checkpointPendingWrites.length>0){for(let[i,o,a]of this.checkpointPendingWrites){if(o===ge||o===V||o===Me)continue;let u=Object.values(this.tasks).find(c=>c.id===i);u&&u.writes.push([o,a])}for(let i of Object.values(this.tasks))i.writes.length>0&&this._outputWrites(i.id,i.writes,!0)}if(Object.values(this.tasks).every(i=>i.writes.length>0))return this.tick({inputKeys:t});if(Ni(this.checkpoint,this.interruptBefore,Object.values(this.tasks)))throw this.status="interrupt_before",new Or;let s=await Pt(fr(Sl(Object.values(this.tasks)),"tasks"));return this._emit(s),!0}async finishAndHandleError(e){this.durability==="exit"&&(!this.isNested||typeof e<"u"||this.checkpointNamespace.every(n=>!n.includes(Ke)))&&(this._putCheckpoint(this.checkpointMetadata),this._flushPendingWrites());let t=this._suppressInterrupt(e);return(t||e===void 0)&&(this.output=Et(this.channels,this.outputKeys)),t&&(this.tasks!==void 0&&this.checkpointPendingWrites.length>0&&Object.values(this.tasks).some(n=>n.writes.length>0)&&(We(this.checkpoint,this.channels,Object.values(this.tasks),this.checkpointerGetNextVersion,this.triggerToNodes),this._emit(pn(fr(va(this.outputKeys,Object.values(this.tasks).flatMap(n=>n.writes),this.channels),"values")))),Pr(e)&&!e.interrupts.length&&this._emit([["updates",{[V]:[]}],["values",{[V]:[]}]])),t}async acceptPush(e,t,n){if(this.interruptAfter?.length>0&&Ni(this.checkpoint,this.interruptAfter,[e])){this.toInterrupt.push(e);return}let s=Pa([$e,e.path??[],t,e.id,n],this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,e.config??{},!0,{step:this.step,checkpointer:this.checkpointer,manager:this.manager,store:this.store,stream:this.stream});if(!s)return;if(this.interruptBefore?.length>0&&Ni(this.checkpoint,this.interruptBefore,[s])){this.toInterrupt.push(s);return}this._emit(pn(fr(Sl([s]),"tasks"))),this.debug&&Ia(this.step,[s]),this.tasks[s.id]=s,this.skipDoneTasks&&this._matchWrites({[s.id]:s});let i=await this._matchCachedWrites();for(let{task:o}of i)this._outputWrites(o.id,o.writes,!0);return s}_suppressInterrupt(e){return Pr(e)&&!this.isNested}async _first(e){let{configurable:t}=this.config,n=t?.[vt];if(n&&n.nullResume!==void 0&&this.putWrites(Le,[[Me,n.nullResume]]),Te(this.input)){let o=this.input.resume!=null;if(this.input.resume!=null&&typeof this.input.resume=="object"&&Object.keys(this.input.resume).every(wa)&&(this.config.configurable??={},this.config.configurable[us]=this.input.resume),o&&this.checkpointer==null)throw new Error("Cannot use Command(resume=...) without checkpointer");let a={};for(let[u,c,l]of Gh(this.input,this.checkpointPendingWrites))a[u]??=[],a[u].push([c,l]);if(Object.keys(a).length===0)throw new hi("Received empty Command input");for(let[u,c]of Object.entries(a))this.putWrites(u,c)}let s=(this.checkpointPendingWrites??[]).filter(o=>o[0]===Le).map(o=>o.slice(1));s.length>0&&We(this.checkpoint,this.channels,[{name:wt,writes:s,triggers:[]}],this.checkpointerGetNextVersion,this.triggerToNodes);let i=Te(this.input)&&s.length>0;if(this.isResuming||i){for(let a in this.channels)if(Object.prototype.hasOwnProperty.call(this.channels,a)&&this.checkpoint.channel_versions[a]!==void 0){let u=this.checkpoint.channel_versions[a];this.checkpoint.versions_seen[V]={...this.checkpoint.versions_seen[V],[a]:u}}let o=await Pt(fr(va(this.outputKeys,!0,this.channels),"values"));this._emit(o)}if(this.isResuming)this.input=Tl;else if(i)await this._putCheckpoint({source:"input"}),this.input=ka;else{let o=await Pt(xa(e,this.input));if(o.length>0){let a=Nr(this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,this.config,!0,{step:this.step});We(this.checkpoint,this.channels,Object.values(a).concat([{name:wt,writes:o,triggers:[]}]),this.checkpointerGetNextVersion,this.triggerToNodes),await this._putCheckpoint({source:"input"}),this.input=ka}else if(Vt in(this.config.configurable??{}))this.input=ka;else throw new hi(`Received no input writes for ${JSON.stringify(e,null,2)}`)}this.isNested||(this.config=Xe(this.config,{[Vt]:this.isResuming}))}_emit(e){for(let[t,n]of e)if(this.stream.modes.has(t)&&this.stream.push([this.checkpointNamespace,t,n]),(t==="checkpoints"||t==="tasks")&&this.stream.modes.has("debug")){let s=t==="checkpoints"?this.step-1:this.step,i=new Date().toISOString(),o=t==="checkpoints"?"checkpoint":typeof n=="object"&&n!=null&&"result"in n?"task_result":"task";this.stream.push([this.checkpointNamespace,"debug",{step:s,type:o,timestamp:i,payload:n}])}}_putCheckpoint(e){let t=this.checkpointMetadata===e,n=this.checkpointer!=null&&(this.durability!=="exit"||t),s=i=>{this.prevCheckpointConfig=this.checkpointConfig?.configurable?.checkpoint_id?this.checkpointConfig:void 0,this.checkpointConfig=Xe(this.checkpointConfig,{[At]:this.config.configurable?.checkpoint_ns??""});let o={...this.checkpoint.channel_versions},a=hs(this.checkpointPreviousVersions,o);this.checkpointPreviousVersions=o,this._checkpointerPutAfterPrevious({config:{...this.checkpointConfig},checkpoint:Wt(i),metadata:{...this.checkpointMetadata},newVersions:a}),this.checkpointConfig={...this.checkpointConfig,configurable:{...this.checkpointConfig.configurable,checkpoint_id:this.checkpoint.id}}};t||(this.checkpointMetadata={...e,step:this.step,parents:this.config.configurable?.[Be]??{}}),this.checkpoint=_t(this.checkpoint,n?this.channels:void 0,this.step,t?{id:this.checkpoint.id}:void 0),n&&s(this.checkpoint),t||(this.step+=1)}_flushPendingWrites(){if(this.checkpointer==null||this.checkpointPendingWrites.length===0)return;let e=Xe(this.checkpointConfig,{[At]:this.config.configurable?.checkpoint_ns??"",[ua]:this.checkpoint.id}),t={};for(let[n,s,i]of this.checkpointPendingWrites)t[n]??=[],t[n].push([s,i]);for(let[n,s]of Object.entries(t))this.checkpointerPromises.push(this.checkpointer.putWrites(e,s,n))}_matchWrites(e){for(let[t,n,s]of this.checkpointPendingWrites){if(n===ge||n===V||n===Me)continue;let i=Object.values(e).find(o=>o.id===t);i&&i.writes.push([n,s])}for(let t of Object.values(e))t.writes.length>0&&this._outputWrites(t.id,t.writes,!0)}};function My(r){return ve(r?.message)}var Ca=class extends Of{constructor(e){super(),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"StreamMessagesHandler"}),Object.defineProperty(this,"streamFn",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metadatas",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"seen",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"emittedChatModelRunIds",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"stableMessageIdMap",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"lc_prefer_streaming",{enumerable:!0,configurable:!0,writable:!0,value:!0}),this.streamFn=e}_emit(e,t,n,s=!1){if(s&&t.id!==void 0&&this.seen[t.id]!==void 0)return;let i=t.id;n!=null&&(xo(t)?i??=`run-${n}-tool-${t.tool_call_id}`:((i==null||i===`run-${n}`)&&(i=this.stableMessageIdMap[n]??i??`run-${n}`),this.stableMessageIdMap[n]??=i)),i!==t.id&&(t.id=i,t.lc_kwargs.id=i),t.id!=null&&(this.seen[t.id]=t),this.streamFn([e[0],"messages",[t,e[1]]])}handleChatModelStart(e,t,n,s,i,o,a,u){a&&(!o||!o.includes(Rh)&&!o.includes("nostream"))&&(this.metadatas[n]=[a.langgraph_checkpoint_ns.split("|"),{tags:o,name:u,...a}])}handleLLMNewToken(e,t,n,s,i,o){let a=o?.chunk;this.emittedChatModelRunIds[n]=!0,this.metadatas[n]!==void 0&&(My(a)?this._emit(this.metadatas[n],a.message,n):this._emit(this.metadatas[n],new Mt({content:e}),n))}handleLLMEnd(e,t){if(this.metadatas[t]!==void 0){if(!this.emittedChatModelRunIds[t]){let n=e.generations?.[0]?.[0];ve(n?.message)&&this._emit(this.metadatas[t],n?.message,t,!0),delete this.emittedChatModelRunIds[t]}delete this.metadatas[t],delete this.stableMessageIdMap[t]}}handleLLMError(e,t){delete this.metadatas[t]}handleChainStart(e,t,n,s,i,o,a,u){if(o!==void 0&&u===o.langgraph_node&&(i===void 0||!i.includes(ee))&&(this.metadatas[n]=[o.langgraph_checkpoint_ns.split("|"),{tags:i,name:u,...o}],typeof t=="object")){for(let c of Object.values(t))if((ve(c)||ii(c))&&c.id!==void 0)this.seen[c.id]=c;else if(Array.isArray(c))for(let l of c)(ve(l)||ii(l))&&l.id!==void 0&&(this.seen[l.id]=l)}}handleChainEnd(e,t){let n=this.metadatas[t];if(delete this.metadatas[t],n!==void 0){if(ve(e))this._emit(n,e,t,!0);else if(Array.isArray(e))for(let s of e)ve(s)&&this._emit(n,s,t,!0);else if(e!=null&&typeof e=="object"){for(let s of Object.values(e))if(ve(s))this._emit(n,s,t,!0);else if(Array.isArray(s))for(let i of s)ve(i)&&this._emit(n,i,t,!0)}}}handleChainError(e,t){delete this.metadatas[t]}};var Dy=500,$y=2,Ly=128e3,Fy=3,Uy=[400,401,402,403,404,405,406,407,409],zy=r=>{if(r.message.startsWith("Cancel")||r.message.startsWith("AbortError")||r.name==="AbortError"||r.name==="GraphValueError"||r?.code==="ECONNABORTED")return!1;let e=r?.response?.status??r?.status;return!(e&&Uy.includes(+e)||r?.error?.code==="insufficient_quota")};async function Nl(r,e,t,n){let s=r.retry_policy??e,i=s!==void 0?s.initialInterval??Dy:0,o=0,a,u,{config:c}=r;for(t&&(c=Xe(c,t)),c={...c,signal:n};!n?.aborted;){r.writes.splice(0,r.writes.length),a=void 0;try{u=await r.proc.invoke(r.input,c);break}catch(l){if(a=l,a.pregelTaskId=r.id,eh(a)){let g=c?.configurable?.checkpoint_ns,b=a.command;if(b.graph===g){for(let _ of r.writers)await _.invoke(b,c);a=void 0;break}else if(b.graph===Ce.PARENT){let _=Mh(g);a.command=new Ce({...a.command,graph:_})}}if(qn(a)||s===void 0||(o+=1,o>=(s.maxAttempts??Fy))||!(s.retryOn??zy)(a))break;i=Math.min(s.maxInterval??Ly,i*(s.backoffFactor??$y));let h=s.jitter?Math.floor(i+Math.random()*1e3):i;await new Promise(g=>setTimeout(g,h));let f=a.name??a.constructor.unminifiable_name??a.constructor.name;(s?.logWarning??!0)&&console.log(`Retrying task "${String(r.name)}" after ${i.toFixed(2)}ms (attempt ${o}) after ${f}: ${a}`),c=Xe(c,{[Vt]:!0})}}return{task:r,result:u,error:a,signalAborted:n?.aborted}}var jl=Symbol.for("promiseAdded");function By(){let r={next:()=>{},wait:Promise.resolve(jl)};function e(t){r.next=()=>{r.wait=new Promise(e),t(jl)}}return r.wait=new Promise(e),r}var Ta=class{constructor({loop:e,nodeFinished:t}){Object.defineProperty(this,"nodeFinished",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"loop",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.loop=e,this.nodeFinished=t}async tick(e={}){let{timeout:t,retryPolicy:n,onStepWrite:s,maxConcurrency:i}=e,o=new Set,a,u=new AbortController,c=u.signal,l=t?AbortSignal.timeout(t):void 0,p=Object.values(this.loop.tasks).filter(b=>b.writes.length===0),{signals:h,disposeCombinedSignal:f}=this._initializeAbortSignals({exceptionSignal:c,stepTimeoutSignal:l,signal:e.signal}),g=this._executeTasksWithRetry(p,{signals:h,retryPolicy:n,maxConcurrency:i});for await(let{task:b,error:_,signalAborted:P}of g)this._commit(b,_),Pr(_)||qn(_)&&!Pr(a)?a=_:_&&(o.size===0||!P)&&(u.abort(),o.add(_));if(f?.(),s?.(this.loop.step,Object.values(this.loop.tasks).map(b=>b.writes).flat()),o.size===1)throw Array.from(o)[0];if(o.size>1)throw new AggregateError(Array.from(o),`Multiple errors occurred during superstep ${this.loop.step}. See the "errors" field of this exception for more details.`);if(Pr(a)||qn(a)&&this.loop.isNested)throw a}_initializeAbortSignals({exceptionSignal:e,stepTimeoutSignal:t,signal:n}){let s=this.loop.config.configurable?.[_l]??{},i=s.externalAbortSignal??n,o=t??s.timeoutAbortSignal,{signal:a,dispose:u}=ds(i,o,e),c={externalAbortSignal:i,timeoutAbortSignal:o,composedAbortSignal:a};return this.loop.config=Xe(this.loop.config,{[_l]:c}),{signals:c,disposeCombinedSignal:u}}async*_executeTasksWithRetry(e,t){let{retryPolicy:n,maxConcurrency:s,signals:i}=t??{},o=By(),a={},u={executingTasksMap:a,barrier:o,retryPolicy:n,scheduleTask:async(f,g,b)=>this.loop.acceptPush(f,g,b)};if(i?.composedAbortSignal?.aborted)throw new Error("Abort");let c=0,l,p=ds(i?.externalAbortSignal,i?.timeoutAbortSignal),h=p.signal?new Promise((f,g)=>{l=()=>g(new Error("Abort")),p.signal?.addEventListener("abort",l,{once:!0})}):void 0;for(;(c===0||Object.keys(a).length>0)&&e.length;){for(;Object.values(a).length<(s??e.length)&&c<e.length;c+=1){let g=e[c];a[g.id]=Nl(g,n,{[Si]:ad?.bind(u,this,g)},i?.composedAbortSignal).catch(b=>({task:g,error:b,signalAborted:i?.composedAbortSignal?.aborted}))}let f=await Promise.race([...Object.values(a),...h?[h]:[],o.wait]);f!==jl&&(yield f,l!=null&&(p.signal?.removeEventListener("abort",l),p.dispose?.()),delete a[f.task.id])}}_commit(e,t){if(t!==void 0)if(Pr(t)){if(t.interrupts.length){let n=t.interrupts.map(i=>[V,i]),s=e.writes.filter(i=>i[0]===Me);s.length&&n.push(...s),this.loop.putWrites(e.id,n)}}else qn(t)&&e.writes.length?this.loop.putWrites(e.id,e.writes):this.loop.putWrites(e.id,[[ge,{message:t.message,name:t.name}]]);else this.nodeFinished&&(e.config?.tags==null||!e.config.tags.includes(ee))&&this.nodeFinished(String(e.name)),e.writes.length===0&&e.writes.push([Ci,null]),this.loop.putWrites(e.id,e.writes)}};async function ad(r,e,t,n,s,i={}){let o=e.config?.configurable?.[vt];if(!o)throw new Error(`BUG: No scratchpad found on task ${e.name}__${e.id}`);let a=o.callCounter;o.callCounter+=1;let u=new Aa({func:t,name:n,input:s,cache:i.cache,retry:i.retry,callbacks:i.callbacks}),c=await this.scheduleTask(e,a,u);if(!c)return;let l=this.executingTasksMap[c.id];if(l!==void 0)return l;if(c.writes.length>0){let p=c.writes.filter(([f])=>f===Ot),h=c.writes.filter(([f])=>f===ge);if(p.length>0){if(p.length===1)return Promise.resolve(p[0][1]);throw new Error(`BUG: multiple returns found for task ${c.name}__${c.id}`)}if(h.length>0){if(h.length===1){let f=h[0][1],g=f instanceof Error?f:new Error(String(f));return Promise.reject(g)}throw new Error(`BUG: multiple errors found for task ${c.name}__${c.id}`)}return}else{let p=Nl(c,i.retry,{[Si]:ad.bind(this,r,c)});return this.executingTasksMap[c.id]=p,this.barrier.next(),p.then(({result:h,error:f})=>f?Promise.reject(f):h)}}var It=class extends Error{constructor(e){super(e),this.name="GraphValidationError"}};function ud({nodes:r,channels:e,inputChannels:t,outputChannels:n,streamChannels:s,interruptAfterNodes:i,interruptBeforeNodes:o}){if(!e)throw new It("Channels not provided");let a=new Set,u=new Set;for(let[c,l]of Object.entries(r)){if(c===V)throw new It(`"Node name ${V} is reserved"`);if(l.constructor===et)l.triggers.forEach(p=>a.add(p));else throw new It(`Invalid node type ${typeof l}, expected PregelNode`)}for(let c of a)if(!(c in e))throw new It(`Subscribed channel '${String(c)}' not in channels`);if(Array.isArray(t)){if(t.every(c=>!a.has(c)))throw new It(`None of the input channels ${t} are subscribed to by any node`)}else if(!a.has(t))throw new It(`Input channel ${String(t)} is not subscribed to by any node`);Array.isArray(n)?n.forEach(c=>u.add(c)):u.add(n),s&&!Array.isArray(s)?u.add(s):Array.isArray(s)&&s.forEach(c=>u.add(c));for(let c of u)if(!(c in e))throw new It(`Output channel '${String(c)}' not in channels`);if(i&&i!=="*"){for(let c of i)if(!(c in r))throw new It(`Node ${String(c)} not in nodes`)}if(o&&o!=="*"){for(let c of o)if(!(c in r))throw new It(`Node ${String(c)} not in nodes`)}}function Ml(r,e){if(Array.isArray(r)){for(let t of r)if(!(t in e))throw new Error(`Key ${String(t)} not found in channels`)}else if(!(r in e))throw new Error(`Key ${String(r)} not found in channels`)}var Ra=class r extends je{constructor(e){super(),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"Topic"}),Object.defineProperty(this,"unique",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"accumulate",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"seen",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"values",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.unique=e?.unique??this.unique,this.accumulate=e?.accumulate??this.accumulate,this.seen=new Set,this.values=[]}fromCheckpoint(e){let t=new r({unique:this.unique,accumulate:this.accumulate});return typeof e<"u"&&(t.seen=new Set(e[0]),t.values=e[1]),t}update(e){let t=!1;this.accumulate||(t=this.values.length>0,this.values=[]);let n=e.flat();if(n.length>0)if(this.unique)for(let s of n)this.seen.has(s)||(t=!0,this.seen.add(s),this.values.push(s));else t=!0,this.values.push(...n);return t}get(){if(this.values.length===0)throw new se;return this.values}checkpoint(){return[[...this.seen],this.values]}isAvailable(){return this.values.length!==0}};var Na=class{static subscribeTo(e,t){let{key:n,tags:s}={key:void 0,tags:void 0,...t??{}};if(Array.isArray(e)&&n!==void 0)throw new Error("Can't specify a key when subscribing to multiple channels");let i;typeof e=="string"?n?i={[n]:e}:i=[e]:i=Object.fromEntries(e.map(a=>[a,a]));let o=Array.isArray(e)?e:[e];return new et({channels:i,triggers:o,tags:s})}static writeTo(e,t){let n=[];for(let s of e)n.push({channel:s,value:Je,skipNone:!1});for(let[s,i]of Object.entries(t??{}))Z.isRunnable(i)||typeof i=="function"?n.push({channel:s,value:Je,skipNone:!0,mapper:Ne(i)}):n.push({channel:s,value:i,skipNone:!1});return new ue(n)}},Dl=class extends Z{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langgraph","pregel"]})}invoke(e,t){throw new Error("Not implemented")}withConfig(e){return super.withConfig(e)}stream(e,t){return super.stream(e,t)}},gs=class extends Dl{static lc_name(){return"LangGraph"}constructor(e){super(e),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langgraph","pregel"]}),Object.defineProperty(this,"lg_is_pregel",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"nodes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"channels",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"inputChannels",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"outputChannels",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"autoValidate",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"streamMode",{enumerable:!0,configurable:!0,writable:!0,value:["values"]}),Object.defineProperty(this,"streamChannels",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"interruptAfter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"interruptBefore",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"stepTimeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"debug",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"checkpointer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"retryPolicy",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"config",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"store",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"triggerToNodes",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:void 0});let{streamMode:t}=e;if(t!=null&&!Array.isArray(t)&&(t=[t]),this.nodes=e.nodes,this.channels=e.channels,De in this.channels&&"lc_graph_name"in this.channels[De]&&this.channels[De].lc_graph_name!=="Topic")throw new Error(`Channel '${De}' is reserved and cannot be used in the graph.`);this.channels[De]=new Ra({accumulate:!1}),this.autoValidate=e.autoValidate??this.autoValidate,this.streamMode=t??this.streamMode,this.inputChannels=e.inputChannels,this.outputChannels=e.outputChannels,this.streamChannels=e.streamChannels??this.streamChannels,this.interruptAfter=e.interruptAfter,this.interruptBefore=e.interruptBefore,this.stepTimeout=e.stepTimeout??this.stepTimeout,this.debug=e.debug??this.debug,this.checkpointer=e.checkpointer,this.retryPolicy=e.retryPolicy,this.config=e.config,this.store=e.store,this.cache=e.cache,this.name=e.name,this.autoValidate&&this.validate()}withConfig(e){let t=ze(this.config,e);return new this.constructor({...this,config:t})}validate(){ud({nodes:this.nodes,channels:this.channels,outputChannels:this.outputChannels,inputChannels:this.inputChannels,streamChannels:this.streamChannels,interruptAfterNodes:this.interruptAfter,interruptBeforeNodes:this.interruptBefore});for(let[e,t]of Object.entries(this.nodes))for(let n of t.triggers)this.triggerToNodes[n]??=[],this.triggerToNodes[n].push(e);return this}get streamChannelsList(){return Array.isArray(this.streamChannels)?this.streamChannels:this.streamChannels?[this.streamChannels]:Object.keys(this.channels)}get streamChannelsAsIs(){return this.streamChannels?this.streamChannels:Object.keys(this.channels)}async getGraphAsync(e){return this.getGraph(e)}*getSubgraphs(e,t){for(let[n,s]of Object.entries(this.nodes)){if(e!==void 0&&!e.startsWith(n))continue;let i=s.subgraphs?.length?s.subgraphs:[s.bound];for(let o of i){let a=Ea(o);if(a!==void 0){if(n===e){yield[n,a];return}if(e===void 0&&(yield[n,a]),t){let u=e;e!==void 0&&(u=e.slice(n.length+1));for(let[c,l]of a.getSubgraphs(u,t))yield[`${n}${le}${c}`,l]}}}}}async*getSubgraphsAsync(e,t){yield*this.getSubgraphs(e,t)}async _prepareStateSnapshot({config:e,saved:t,subgraphCheckpointer:n,applyPendingWrites:s=!1}){if(t===void 0)return{values:{},next:[],config:e,tasks:[]};let i=Sr(this.channels,t.checkpoint);if(t.pendingWrites?.length){let h=t.pendingWrites.filter(([f,g])=>f===Le).map(([f,g,b])=>[String(g),b]);h.length>0&&We(t.checkpoint,i,[{name:wt,writes:h,triggers:[]}],void 0,this.triggerToNodes)}let o=Object.values(Nr(t.checkpoint,t.pendingWrites,this.nodes,i,t.config,!0,{step:(t.metadata?.step??-1)+1,store:this.store})),a=await Pt(this.getSubgraphsAsync()),u=t.config.configurable?.checkpoint_ns??"",c={};for(let h of o){let f=a.find(([b])=>b===h.name);if(!f)continue;let g=`${String(h.name)}${Ke}${h.id}`;if(u&&(g=`${u}${le}${g}`),n===void 0){let b={configurable:{thread_id:t.config.configurable?.thread_id,checkpoint_ns:g}};c[h.id]=b}else{let b={configurable:{[de]:n,thread_id:t.config.configurable?.thread_id,checkpoint_ns:g}},_=f[1];c[h.id]=await _.getState(b,{subgraphs:!0})}}if(s&&t.pendingWrites?.length){let h=Object.fromEntries(o.map(g=>[g.id,g]));for(let[g,b,_]of t.pendingWrites)[ge,V,Jn].includes(b)||g in h&&h[g].writes.push([String(b),_]);let f=o.filter(g=>g.writes.length>0);f.length>0&&We(t.checkpoint,i,f,void 0,this.triggerToNodes)}let l=t?.metadata;l&&t?.config?.configurable?.thread_id&&(l={...l,thread_id:t.config.configurable.thread_id});let p=o.filter(h=>h.writes.length===0).map(h=>h.name);return{values:Et(i,this.streamChannelsAsIs),next:p,tasks:Cl(o,t?.pendingWrites??[],c,this.streamChannelsAsIs),metadata:l,config:Rr(t.config,t.metadata),createdAt:t.checkpoint.ts,parentConfig:t.parentConfig}}async getState(e,t){let n=e.configurable?.[de]??this.checkpointer;if(!n)throw new Gn("No checkpointer set");let s=e.configurable?.checkpoint_ns??"";if(s!==""&&e.configurable?.[de]===void 0){let u=pa(s);for await(let[c,l]of this.getSubgraphsAsync(u,!0))if(c===u)return await l.getState(fn(e,{[de]:n}),{subgraphs:t?.subgraphs});throw new Error(`Subgraph with namespace "${u}" not found.`)}let i=ze(this.config,e),o=await n.getTuple(e);return await this._prepareStateSnapshot({config:i,saved:o,subgraphCheckpointer:t?.subgraphs?n:void 0,applyPendingWrites:!e.configurable?.checkpoint_id})}async*getStateHistory(e,t){let n=e.configurable?.[de]??this.checkpointer;if(!n)throw new Gn("No checkpointer set");let s=e.configurable?.checkpoint_ns??"";if(s!==""&&e.configurable?.[de]===void 0){let o=pa(s);for await(let[a,u]of this.getSubgraphsAsync(o,!0))if(a===o){yield*u.getStateHistory(fn(e,{[de]:n}),t);return}throw new Error(`Subgraph with namespace "${o}" not found.`)}let i=ze(this.config,e,{configurable:{checkpoint_ns:s}});for await(let o of n.list(i,t))yield this._prepareStateSnapshot({config:o.config,saved:o})}async bulkUpdateState(e,t){let n=e.configurable?.[de]??this.checkpointer;if(!n)throw new Gn("No checkpointer set");if(t.length===0)throw new Error("No supersteps provided");if(t.some(a=>a.updates.length===0))throw new Error("No updates provided");let s=e.configurable?.checkpoint_ns??"";if(s!==""&&e.configurable?.[de]===void 0){let a=pa(s);for await(let[,u]of this.getSubgraphsAsync(a,!0))return await u.bulkUpdateState(fn(e,{[de]:n}),t);throw new Error(`Subgraph "${a}" not found`)}let i=async(a,u)=>{let c=this.config?ze(this.config,a):a,l=await n.getTuple(c),p=l!==void 0?Wt(l.checkpoint):Ai(),h={...l?.checkpoint.channel_versions},f=l?.metadata?.step??-1,g=fn(c,{checkpoint_ns:c.configurable?.checkpoint_ns??""}),b=c.metadata??{};l?.config.configurable&&(g=fn(c,l.config.configurable),b={...l.metadata,...b});let{values:_,asNode:P}=u[0];if(_==null&&P===void 0){if(u.length>1)throw new X("Cannot create empty checkpoint with multiple updates");let y=await n.put(g,_t(p,void 0,f),{source:"update",step:f+1,parents:l?.metadata?.parents??{}},{});return Rr(y,l?l.metadata:void 0)}let v=Sr(this.channels,p);if(_===null&&P===K){if(u.length>1)throw new X("Cannot apply multiple updates when clearing state");if(l){let T=Nr(p,l.pendingWrites||[],this.nodes,v,l.config,!0,{step:(l.metadata?.step??-1)+1,checkpointer:n,store:this.store}),$=(l.pendingWrites||[]).filter(E=>E[0]===Le).map(E=>E.slice(1));$.length>0&&We(p,v,[{name:wt,writes:$,triggers:[]}],n.getNextVersion.bind(n),this.triggerToNodes);for(let[E,J,oe]of l.pendingWrites||[])[ge,V,Jn].includes(J)||E in T&&T[E].writes.push([J,oe]);We(p,v,Object.values(T),n.getNextVersion.bind(n),this.triggerToNodes)}let y=await n.put(g,_t(p,v,f),{...b,source:"update",step:f+1,parents:l?.metadata?.parents??{}},hs(h,p.channel_versions));return Rr(y,l?l.metadata:void 0)}if(P===Ch){if(u.length>1)throw new X("Cannot copy checkpoint with multiple updates");if(l==null)throw new X("Cannot copy a non-existent checkpoint");let y=E=>!Array.isArray(E)||E.length===0?!1:E.every(J=>Array.isArray(J)&&J.length===2),T=_t(p,void 0,f),$=await n.put(l.parentConfig??fn(l.config,{checkpoint_id:void 0}),T,{source:"fork",step:f+1,parents:l.metadata?.parents??{}},{});if(y(_)){let E=Nr(T,l.pendingWrites,this.nodes,v,$,!1,{step:f+2}),J=Object.values(E).reduce((pe,{name:Nt,id:Q})=>(pe[Nt]??=[],pe[Nt].push({id:Q}),pe),{}),oe=_.reduce((pe,Nt)=>{let[Q,Xr]=Nt;pe[Xr]??=[];let ni=pe[Xr].length,si=J[Xr]?.[ni]?.id;return pe[Xr].push({values:Q,asNode:Xr,taskId:si}),pe},{});return i(Rr($,l.metadata),Object.values(oe).flat())}return Rr($,l.metadata)}if(P===wt){if(u.length>1)throw new X("Cannot apply multiple updates when updating as input");let y=await Pt(xa(this.inputChannels,_));if(y.length===0)throw new X(`Received no input writes for ${JSON.stringify(this.inputChannels,null,2)}`);We(p,v,[{name:wt,writes:y,triggers:[]}],n.getNextVersion.bind(this.checkpointer),this.triggerToNodes);let T=l?.metadata?.step!=null?l.metadata.step+1:-1,$=await n.put(g,_t(p,v,T),{source:"input",step:T,parents:l?.metadata?.parents??{}},hs(h,p.channel_versions));return await n.putWrites($,y,Er(wt,p.id)),Rr($,l?l.metadata:void 0)}if(c.configurable?.checkpoint_id===void 0&&l?.pendingWrites!==void 0&&l.pendingWrites.length>0){let y=Nr(p,l.pendingWrites,this.nodes,v,l.config,!0,{store:this.store,checkpointer:this.checkpointer,step:(l.metadata?.step??-1)+1}),T=(l.pendingWrites??[]).filter(E=>E[0]===Le).map(E=>E.slice(1));T.length>0&&We(l.checkpoint,v,[{name:wt,writes:T,triggers:[]}],void 0,this.triggerToNodes);for(let[E,J,oe]of l.pendingWrites)[ge,V,Jn].includes(J)||y[E]===void 0||y[E].writes.push([J,oe]);let $=Object.values(y).filter(E=>E.writes.length>0);$.length>0&&We(p,v,$,void 0,this.triggerToNodes)}let S=Object.values(p.versions_seen).map(y=>Object.values(y)).flat().find(y=>!!y),C=[];if(u.length===1){let{values:y,asNode:T,taskId:$}=u[0];if(T===void 0&&Object.keys(this.nodes).length===1)[T]=Object.keys(this.nodes);else if(T===void 0&&S===void 0)typeof this.inputChannels=="string"&&this.nodes[this.inputChannels]!==void 0&&(T=this.inputChannels);else if(T===void 0){let E=Object.entries(p.versions_seen).map(([J,oe])=>Object.values(oe).map(pe=>[pe,J])).flat().filter(([J,oe])=>oe!==V).sort(([J],[oe])=>dl(J,oe));E&&(E.length===1?T=E[0][1]:E[E.length-1][0]!==E[E.length-2][0]&&(T=E[E.length-1][1]))}if(T===void 0)throw new X('Ambiguous update, specify "asNode"');C.push({values:y,asNode:T,taskId:$})}else for(let{asNode:y,values:T,taskId:$}of u){if(y==null)throw new X('"asNode" is required when applying multiple updates');C.push({values:T,asNode:y,taskId:$})}let j=[];for(let{asNode:y,values:T,taskId:$}of C){if(this.nodes[y]===void 0)throw new X(`Node "${y.toString()}" does not exist`);let E=this.nodes[y].getWriters();if(!E.length)throw new X(`No writers found for node "${y.toString()}"`);j.push({name:y,input:T,proc:E.length>1?Qe.from(E,{omitSequenceTags:!0}):E[0],writes:[],triggers:[V],id:$??Er(V,p.id),writers:[]})}for(let y of j)await y.proc.invoke(y.input,he({...c,store:c?.store??this.store},{runName:c.runName??`${this.getName()}UpdateState`,configurable:{[pr]:T=>y.writes.push(...T),[xt]:(T,$=!1)=>Ri(p,v,y,T,$)}}));for(let y of j){let T=y.writes.filter($=>$[0]!==$e);l!==void 0&&T.length>0&&await n.putWrites(g,T,y.id)}We(p,v,j,n.getNextVersion.bind(this.checkpointer),this.triggerToNodes);let F=hs(h,p.channel_versions),D=await n.put(g,_t(p,v,f+1),{source:"update",step:f+1,parents:l?.metadata?.parents??{}},F);for(let y of j){let T=y.writes.filter($=>$[0]===$e);T.length>0&&await n.putWrites(D,T,y.id)}return Rr(D,l?l.metadata:void 0)},o=e;for(let{updates:a}of t)o=await i(o,a);return o}async updateState(e,t,n){return this.bulkUpdateState(e,[{updates:[{values:t,asNode:n}]}])}_defaults(e){let{debug:t,streamMode:n,inputKeys:s,outputKeys:i,interruptAfter:o,interruptBefore:a,...u}=e,c=!0,l=t!==void 0?t:this.debug,p=i;p===void 0?p=this.streamChannelsAsIs:Ml(p,this.channels);let h=s;h===void 0?h=this.inputChannels:Ml(h,this.channels);let f=a??this.interruptBefore??[],g=o??this.interruptAfter??[],b;n!==void 0?(b=Array.isArray(n)?n:[n],c=typeof n=="string"):(e.configurable?.[cn]!==void 0?b=["values"]:b=this.streamMode,c=!0);let _;if(this.checkpointer===!1)_=void 0;else if(e!==void 0&&e.configurable?.[de]!==void 0)_=e.configurable[de];else{if(this.checkpointer===!0)throw new Error("checkpointer: true cannot be used for root graphs.");_=this.checkpointer}let P=e.store??this.store,v=e.cache??this.cache;if(e.durability!=null&&e.checkpointDuring!=null)throw new Error("Cannot use both `durability` and `checkpointDuring` at the same time.");let S=(()=>{if(e.checkpointDuring!=null)return e.checkpointDuring===!1?"exit":"async"})(),C=e.durability??S??e?.configurable?.[yl]??"async";return[l,b,h,p,u,f,g,_,P,c,v,C]}async stream(e,t){let n=new AbortController,s={recursionLimit:this.config?.recursionLimit,...t,signal:ds(t?.signal,n.signal).signal};return new $i(await super.stream(e,s),n)}streamEvents(e,t,n){let s=new AbortController,i={recursionLimit:this.config?.recursionLimit,...t,callbacks:Yh(this.config?.callbacks,t?.callbacks),signal:ds(t?.signal,s.signal).signal};return new $i(super.streamEvents(e,i,n),s)}async _validateInput(e){return e}async _validateContext(e){return e}async*_streamIterator(e,t){let n=t?.subgraphs,s=la(this.config,t);if(s.recursionLimit===void 0||s.recursionLimit<1)throw new Error('Passed "recursionLimit" must be at least 1.');if(this.checkpointer!==void 0&&this.checkpointer!==!1&&s.configurable===void 0)throw new Error('Checkpointer requires one or more of the following "configurable" keys: "thread_id", "checkpoint_ns", "checkpoint_id"');let i=await this._validateInput(e),{runId:o,...a}=s,[u,c,,l,p,h,f,g,b,_,P,v]=this._defaults(a);typeof p.context<"u"?p.context=await this._validateContext(p.context):p.configurable=await this._validateContext(p.configurable);let S=new ms({modes:new Set(c)});if(this.checkpointer===!0){p.configurable??={};let E=p.configurable[At]??"";p.configurable[At]=E.split(le).map(J=>J.split(Ke)[0]).join(le)}if(c.includes("messages")){let E=new Ca(oe=>S.push(oe)),{callbacks:J}=p;if(J===void 0)p.callbacks=[E];else if(Array.isArray(J))p.callbacks=J.concat(E);else{let oe=J.copy();oe.addHandler(E,!0),p.callbacks=oe}}c.includes("custom")&&(p.writer=E=>{let J=jh()?.configurable?.[At]?.split(le).slice(0,-1);S.push([J??[],"custom",E])});let j=await(await vr(p))?.handleChainStart(this.toJSON(),Xh(e,"input"),o,void 0,void 0,void 0,p?.runName??this.getName()),F=Ii(this.channels),D,y,$=(async()=>{try{D=await Sa.initialize({input:i,config:p,checkpointer:g,nodes:this.nodes,channelSpecs:F,outputKeys:l,streamKeys:this.streamChannelsAsIs,store:b,cache:P,stream:S,interruptAfter:f,interruptBefore:h,manager:j,debug:this.debug,triggerToNodes:this.triggerToNodes,durability:v});let E=new Ta({loop:D,nodeFinished:p.configurable?.[Th]});t?.subgraphs&&(D.config.configurable={...D.config.configurable,[as]:D.stream}),await this._runLoop({loop:D,runner:E,debug:u,config:p}),v==="sync"&&await Promise.all(D?.checkpointerPromises??[])}catch(E){y=E}finally{try{D&&(await D.store?.stop(),await D.cache?.stop()),await Promise.all(D?.checkpointerPromises??[])}catch(E){y=y??E}y?S.error(y):S.close()}})();try{for await(let E of S){if(E===void 0)throw new Error("Data structure error.");let[J,oe,pe]=E;c.includes(oe)&&(n&&!_?yield[J,oe,pe]:_?n?yield[J,pe]:yield pe:yield[oe,pe])}}catch(E){throw await j?.handleChainError(y),E}finally{await $}await j?.handleChainEnd(D?.output??{},o,void 0,void 0,void 0)}async invoke(e,t){let n=t?.streamMode??"values",s={...t,outputKeys:t?.outputKeys??this.outputChannels,streamMode:n},i=[],o=await this.stream(e,s),a=[],u;for await(let c of o)n==="values"?xl(c)?a.push(c[V]):u=c:i.push(c);if(n==="values"){if(a.length>0){let c=a.flat(1);if(u==null)return{[V]:c};if(typeof u=="object")return{...u,[V]:c}}return u}return i}async _runLoop(e){let{loop:t,runner:n,debug:s,config:i}=e,o;try{for(;await t.tick({inputKeys:this.inputChannels});){for(let{task:a}of await t._matchCachedWrites())t._outputWrites(a.id,a.writes,!0);s&&id(t.checkpointMetadata.step,t.channels,this.streamChannelsList),s&&Ia(t.step,Object.values(t.tasks)),await n.tick({timeout:this.stepTimeout,retryPolicy:this.retryPolicy,onStepWrite:(a,u)=>{s&&od(a,u,this.streamChannelsList)},maxConcurrency:i.maxConcurrency,signal:i.signal})}if(t.status==="out_of_steps")throw new ko([`Recursion limit of ${i.recursionLimit} reached`,"without hitting a stop condition. You can increase the",'limit by setting the "recursionLimit" config key.'].join(" "),{lc_error_code:"GRAPH_RECURSION_LIMIT"})}catch(a){if(o=a,!await t.finishAndHandleError(o))throw a}finally{o===void 0&&await t.finishAndHandleError()}}async clearCache(){await this.cache?.clear([])}};var ft=class r extends je{constructor(e=!0){super(),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"EphemeralValue"}),Object.defineProperty(this,"guard",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"value",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.guard=e}fromCheckpoint(e){let t=new r(this.guard);return typeof e<"u"&&(t.value=[e]),t}update(e){if(e.length===0){let t=this.value.length>0;return this.value=[],t}if(e.length!==1&&this.guard)throw new X("EphemeralValue can only receive one value per step.");return this.value=[e[e.length-1]],!0}get(){if(this.value.length===0)throw new se;return this.value[0]}checkpoint(){if(this.value.length===0)throw new se;return this.value[0]}isAvailable(){return this.value.length!==0}};var Li=class{constructor(e){Object.defineProperty(this,"path",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"ends",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Z.isRunnable(e.path)?this.path=e.path:this.path=Ne(e.path).withConfig({runName:"Branch"}),this.ends=Array.isArray(e.pathMap)?e.pathMap.reduce((t,n)=>(t[n]=n,t),{}):e.pathMap}run(e,t){return ue.registerWriter(new Ie({name:"<branch_run>",trace:!1,func:async(n,s)=>{try{return await this._route(n,s,e,t)}catch(i){throw i.name===pi.unminifiable_name&&console.warn(`[WARN]: 'NodeInterrupt' thrown in conditional edge. This is likely a bug in your graph implementation.
87
+ NodeInterrupt should only be thrown inside a node, not in edge conditions.`),i}}}))}async _route(e,t,n,s){let i=await this.path.invoke(s?s(t):e,t);Array.isArray(i)||(i=[i]);let o;if(this.ends?o=i.map(u=>Ee(u)?u:this.ends[u]):o=i,o.some(u=>!u))throw new Error("Branch condition returned unknown or null destination");if(o.filter(Ee).some(u=>u.node===K))throw new X("Cannot send a packet to the END node");return await n(o,t)??e}},bs=class{constructor(){Object.defineProperty(this,"nodes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"edges",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"branches",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"entryPoint",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"compiled",{enumerable:!0,configurable:!0,writable:!0,value:!1}),this.nodes={},this.edges=new Set,this.branches={}}warnIfCompiled(e){this.compiled&&console.warn(e)}get allEdges(){return this.edges}addNode(...e){function t(s){return s.length>=1&&typeof s[0]!="string"}let n=t(e)?Array.isArray(e[0])?e[0]:Object.entries(e[0]):[[e[0],e[1],e[2]]];if(n.length===0)throw new Error("No nodes provided in `addNode`");for(let[s,i,o]of n){for(let u of[le,Ke])if(s.includes(u))throw new Error(`"${u}" is a reserved character and is not allowed in node names.`);if(this.warnIfCompiled("Adding a node to a graph that has already been compiled. This will not be reflected in the compiled graph."),s in this.nodes)throw new Error(`Node \`${s}\` already present.`);if(s===K)throw new Error(`Node \`${s}\` is reserved.`);let a=Ne(i);this.nodes[s]={runnable:a,metadata:o?.metadata,subgraphs:ji(a)?[a]:o?.subgraphs,ends:o?.ends}}return this}addEdge(e,t){if(this.warnIfCompiled("Adding an edge to a graph that has already been compiled. This will not be reflected in the compiled graph."),e===K)throw new Error("END cannot be a start node");if(t===q)throw new Error("START cannot be an end node");if(Array.from(this.edges).some(([n])=>n===e)&&!("channels"in this))throw new Error(`Already found path for ${e}. For multiple edges, use StateGraph.`);return this.edges.add([e,t]),this}addConditionalEdges(e,t,n){let s=typeof e=="object"?e:{source:e,path:t,pathMap:n};if(this.warnIfCompiled("Adding an edge to a graph that has already been compiled. This will not be reflected in the compiled graph."),!Z.isRunnable(s.path)){let o=Array.isArray(s.pathMap)?s.pathMap.join(","):Object.keys(s.pathMap??{}).join(",");s.path=Ne(s.path).withConfig({runName:`Branch<${s.source}${o!==""?`,${o}`:""}>`.slice(0,63)})}let i=s.path.getName()==="RunnableLambda"?"condition":s.path.getName();if(this.branches[s.source]&&this.branches[s.source][i])throw new Error(`Condition \`${i}\` already present for node \`${e}\``);return this.branches[s.source]??={},this.branches[s.source][i]=new Li(s),this}setEntryPoint(e){return this.warnIfCompiled("Setting the entry point of a graph that has already been compiled. This will not be reflected in the compiled graph."),this.addEdge(q,e)}setFinishPoint(e){return this.warnIfCompiled("Setting a finish point of a graph that has already been compiled. This will not be reflected in the compiled graph."),this.addEdge(e,K)}compile({checkpointer:e,interruptBefore:t,interruptAfter:n,name:s}={}){this.validate([...Array.isArray(t)?t:[],...Array.isArray(n)?n:[]]);let i=new Fi({builder:this,checkpointer:e,interruptAfter:n,interruptBefore:t,autoValidate:!1,nodes:{},channels:{[q]:new ft,[K]:new ft},inputChannels:q,outputChannels:K,streamChannels:[],streamMode:"values",name:s});for(let[o,a]of Object.entries(this.nodes))i.attachNode(o,a);for(let[o,a]of this.edges)i.attachEdge(o,a);for(let[o,a]of Object.entries(this.branches))for(let[u,c]of Object.entries(a))i.attachBranch(o,u,c);return i.validate()}validate(e){let t=new Set([...this.allEdges].map(([s,i])=>s));for(let[s]of Object.entries(this.branches))t.add(s);for(let s of t)if(s!==q&&!(s in this.nodes))throw new Error(`Found edge starting at unknown node \`${s}\``);let n=new Set([...this.allEdges].map(([s,i])=>i));for(let[s,i]of Object.entries(this.branches))for(let o of Object.values(i))if(o.ends!=null)for(let a of Object.values(o.ends))n.add(a);else{n.add(K);for(let a of Object.keys(this.nodes))a!==s&&n.add(a)}for(let s of Object.values(this.nodes))for(let i of s.ends??[])n.add(i);for(let s of Object.keys(this.nodes))if(!n.has(s))throw new So([`Node \`${s}\` is not reachable.`,"","If you are returning Command objects from your node,",'make sure you are passing names of potential destination nodes as an "ends" array','into ".addNode(..., { ends: ["node1", "node2"] })".'].join(`
88
+ `),{lc_error_code:"UNREACHABLE_NODE"});for(let s of n)if(s!==K&&!(s in this.nodes))throw new Error(`Found edge ending at unknown node \`${s}\``);if(e){for(let s of e)if(!(s in this.nodes))throw new Error(`Interrupt node \`${s}\` is not present`)}this.compiled=!0}},Fi=class extends gs{constructor({builder:e,...t}){super(t),Object.defineProperty(this,"builder",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.builder=e}attachNode(e,t){this.channels[e]=new ft,this.nodes[e]=new et({channels:[],triggers:[],metadata:t.metadata,subgraphs:t.subgraphs,ends:t.ends}).pipe(t.runnable).pipe(new ue([{channel:e,value:Je}],[ee])),this.streamChannels.push(e)}attachEdge(e,t){if(t===K){if(e===q)throw new Error("Cannot have an edge from START to END");this.nodes[e].writers.push(new ue([{channel:K,value:Je}],[ee]))}else this.nodes[t].triggers.push(e),this.nodes[t].channels.push(e)}attachBranch(e,t,n){e===q&&!this.nodes[q]&&(this.nodes[q]=Na.subscribeTo(q,{tags:[ee]})),this.nodes[e].pipe(n.run(i=>{let o=i.map(a=>Ee(a)?a:{channel:a===K?K:`branch:${e}:${t}:${a}`,value:Je});return new ue(o,[ee])}));let s=n.ends?Object.values(n.ends):Object.keys(this.nodes);for(let i of s)if(i!==K){let o=`branch:${e}:${t}:${i}`;this.channels[o]=new ft,this.nodes[i].triggers.push(o),this.nodes[i].channels.push(o)}}async getGraphAsync(e){let t=e?.xray,n=new zu,s={[q]:n.addNode({schema:ae.any()},q)},i={},o={};t&&(o=Object.fromEntries((await Pt(this.getSubgraphsAsync())).filter(c=>cd(c[1]))));function a(c,l,p,h=!1){if(l===K&&i[K]===void 0&&(i[K]=n.addNode({schema:ae.any()},K)),s[c]!==void 0){if(i[l]===void 0)throw new Error(`End node ${l} not found!`);return n.addEdge(s[c],i[l],p!==l?p:void 0,h)}}for(let[c,l]of Object.entries(this.builder.nodes)){let p=Fe(c),h=l.runnable,f=l.metadata??{};if(this.interruptBefore?.includes(c)&&this.interruptAfter?.includes(c)?f.__interrupt="before,after":this.interruptBefore?.includes(c)?f.__interrupt="before":this.interruptAfter?.includes(c)&&(f.__interrupt="after"),t){let g=typeof t=="number"?t-1:t,b=o[c]!==void 0?await o[c].getGraphAsync({...e,xray:g}):h.getGraph(e);if(b.trimFirstNode(),b.trimLastNode(),Object.keys(b.nodes).length>1){let v=function(C){return C?C.lc_runnable:!1},S=function(C,j){if(C!==void 0&&!Pu(C))return C;if(v(j))try{let F=j.getName();return F=F.startsWith("Runnable")?F.slice(8):F,F}catch{return j.getName()}else return j.name??"UnknownSchema"},[_,P]=n.extend(b,p);if(_===void 0)throw new Error(`Could not extend subgraph "${c}" due to missing entrypoint.`);P!==void 0&&(s[p]={name:S(P.id,P.data),...P}),i[p]={name:S(_.id,_.data),..._}}else{let _=n.addNode(h,p,f);s[p]=_,i[p]=_}}else{let g=n.addNode(h,p,f);s[p]=g,i[p]=g}}let u=[...this.builder.allEdges].sort(([c],[l])=>c<l?-1:l>c?1:0);for(let[c,l]of u)a(Fe(c),Fe(l));for(let[c,l]of Object.entries(this.builder.branches)){let p={...Object.fromEntries(Object.keys(this.builder.nodes).filter(h=>h!==c).map(h=>[Fe(h),Fe(h)])),[K]:K};for(let h of Object.values(l)){let f;h.ends!==void 0?f=h.ends:f=p;for(let[g,b]of Object.entries(f))a(Fe(c),Fe(b),g,!0)}}for(let[c,l]of Object.entries(this.builder.nodes))if(l.ends!==void 0)for(let p of l.ends)a(Fe(c),Fe(p),void 0,!0);return n}getGraph(e){let t=e?.xray,n=new zu,s={[q]:n.addNode({schema:ae.any()},q)},i={},o={};t&&(o=Object.fromEntries(pn(this.getSubgraphs()).filter(c=>cd(c[1]))));function a(c,l,p,h=!1){return l===K&&i[K]===void 0&&(i[K]=n.addNode({schema:ae.any()},K)),n.addEdge(s[c],i[l],p!==l?p:void 0,h)}for(let[c,l]of Object.entries(this.builder.nodes)){let p=Fe(c),h=l.runnable,f=l.metadata??{};if(this.interruptBefore?.includes(c)&&this.interruptAfter?.includes(c)?f.__interrupt="before,after":this.interruptBefore?.includes(c)?f.__interrupt="before":this.interruptAfter?.includes(c)&&(f.__interrupt="after"),t){let g=typeof t=="number"?t-1:t,b=o[c]!==void 0?o[c].getGraph({...e,xray:g}):h.getGraph(e);if(b.trimFirstNode(),b.trimLastNode(),Object.keys(b.nodes).length>1){let v=function(C){return C?C.lc_runnable:!1},S=function(C,j){if(C!==void 0&&!Pu(C))return C;if(v(j))try{let F=j.getName();return F=F.startsWith("Runnable")?F.slice(8):F,F}catch{return j.getName()}else return j.name??"UnknownSchema"},[_,P]=n.extend(b,p);if(_===void 0)throw new Error(`Could not extend subgraph "${c}" due to missing entrypoint.`);P!==void 0&&(s[p]={name:S(P.id,P.data),...P}),i[p]={name:S(_.id,_.data),..._}}else{let _=n.addNode(h,p,f);s[p]=_,i[p]=_}}else{let g=n.addNode(h,p,f);s[p]=g,i[p]=g}}let u=[...this.builder.allEdges].sort(([c],[l])=>c<l?-1:l>c?1:0);for(let[c,l]of u)a(Fe(c),Fe(l));for(let[c,l]of Object.entries(this.builder.branches)){let p={...Object.fromEntries(Object.keys(this.builder.nodes).filter(h=>h!==c).map(h=>[Fe(h),Fe(h)])),[K]:K};for(let h of Object.values(l)){let f;h.ends!==void 0?f=h.ends:f=p;for(let[g,b]of Object.entries(f))a(Fe(c),Fe(b),g,!0)}}return n}};function cd(r){return typeof r.attachNode=="function"&&typeof r.attachEdge=="function"}function Fe(r){return r==="subgraph"?`"${r}"`:r}var gn=(r,e)=>r.size===e.size&&[...r].every(t=>e.has(t)),ja=class r extends je{constructor(e){super(),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"NamedBarrierValue"}),Object.defineProperty(this,"names",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"seen",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.names=e,this.seen=new Set}fromCheckpoint(e){let t=new r(this.names);return typeof e<"u"&&(t.seen=new Set(e)),t}update(e){let t=!1;for(let n of e)if(this.names.has(n))this.seen.has(n)||(this.seen.add(n),t=!0);else throw new X(`Value ${JSON.stringify(n)} not in names ${JSON.stringify(this.names)}`);return t}get(){if(!gn(this.names,this.seen))throw new se}checkpoint(){return[...this.seen]}consume(){return this.seen&&this.names&&gn(this.seen,this.names)?(this.seen=new Set,!0):!1}isAvailable(){return!!this.names&&gn(this.names,this.seen)}},Ma=class r extends je{constructor(e){super(),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"NamedBarrierValueAfterFinish"}),Object.defineProperty(this,"names",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"seen",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"finished",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.names=e,this.seen=new Set,this.finished=!1}fromCheckpoint(e){let t=new r(this.names);if(typeof e<"u"){let[n,s]=e;t.seen=new Set(n),t.finished=s}return t}update(e){let t=!1;for(let n of e)if(this.names.has(n)&&!this.seen.has(n))this.seen.add(n),t=!0;else if(!this.names.has(n))throw new X(`Value ${JSON.stringify(n)} not in names ${JSON.stringify(this.names)}`);return t}get(){if(!this.finished||!gn(this.names,this.seen))throw new se}checkpoint(){return[[...this.seen],this.finished]}consume(){return this.finished&&this.seen&&this.names&&gn(this.seen,this.names)?(this.seen=new Set,this.finished=!1,!0):!1}finish(){return!this.finished&&this.names&&gn(this.names,this.seen)?(this.finished=!0,!0):!1}isAvailable(){return this.finished&&!!this.names&&gn(this.names,this.seen)}};var Ky="lg:",$l=class{constructor(){Object.defineProperty(this,"_map",{enumerable:!0,configurable:!0,writable:!0,value:new WeakMap}),Object.defineProperty(this,"_extensionCache",{enumerable:!0,configurable:!0,writable:!0,value:new Map})}get(e){return this._map.get(e)}extend(e,t){let n=this.get(e);this._map.set(e,t(n))}remove(e){return this._map.delete(e),this}has(e){return this._map.has(e)}getChannelsForSchema(e){let t={},n=Oo(e);for(let[s,i]of Object.entries(n)){let o=this.get(i);o?.reducer?t[s]=new lr(o.reducer.fn,o.default):t[s]=new Ht}return t}getExtendedChannelSchemas(e,t){if(Object.keys(t).length===0)return e;let n=Object.entries(t).filter(([,o])=>o===!0).sort(([o],[a])=>o.localeCompare(a)).map(([o,a])=>`${o}:${a}`).join("|"),s=this._extensionCache.get(n)??new WeakMap;if(s.has(e))return s.get(e);let i=e;if(t.withReducerSchema||t.withJsonSchemaExtrasAsDescription){let o=Object.entries(Oo(e)).map(([a,u])=>{let c=this.get(u),l=t.withReducerSchema?c?.reducer?.schema??u:u;if(t.withJsonSchemaExtrasAsDescription&&c?.jsonSchemaExtra){let p=$t(l)??$t(u),h=JSON.stringify({...c.jsonSchemaExtra,description:p});l=l.describe(`${Ky}${h}`)}return[a,l]});i=Fu(e,Object.fromEntries(o)),ai(i)&&(i._def.unknownKeys="strip")}return t.asPartial&&(i=li(i)),s.set(e,i),this._extensionCache.set(n,s),i}},Ui=new $l;function ld(r,e){if(e.reducer&&!e.default){let t=Uu(r);t!=null&&(e.default=t)}if(e.reducer){let t=Object.assign(r,{lg_reducer_schema:e.reducer?.schema??r});return Ui.extend(t,()=>e),t}else return Ui.extend(r,()=>e),r}var dr="__root__",Ll=Symbol.for("langgraph.state.partial"),bn=class extends bs{constructor(e,t){if(super(),Object.defineProperty(this,"channels",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"waitingEdges",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"_schemaDefinition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_schemaRuntimeDefinition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_inputDefinition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_inputRuntimeDefinition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_outputDefinition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_outputRuntimeDefinition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_schemaDefinitions",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_metaRegistry",{enumerable:!0,configurable:!0,writable:!0,value:Ui}),Object.defineProperty(this,"_configSchema",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_configRuntimeSchema",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Jy(e)){let n=this._metaRegistry.getChannelsForSchema(e.state),s=e.input!=null?this._metaRegistry.getChannelsForSchema(e.input):n,i=e.output!=null?this._metaRegistry.getChannelsForSchema(e.output):n;this._schemaDefinition=n,this._schemaRuntimeDefinition=e.state,this._inputDefinition=s,this._inputRuntimeDefinition=e.input??Ll,this._outputDefinition=i,this._outputRuntimeDefinition=e.output??e.state}else if(Lt(e)){let n=this._metaRegistry.getChannelsForSchema(e);this._schemaDefinition=n,this._schemaRuntimeDefinition=e,this._inputDefinition=n,this._inputRuntimeDefinition=Ll,this._outputDefinition=n,this._outputRuntimeDefinition=e}else if(qy(e))this._schemaDefinition=e.input.spec,this._inputDefinition=e.input.spec,this._outputDefinition=e.output.spec;else if(Gy(e))this._schemaDefinition=e.stateSchema.spec,this._inputDefinition=e.input?.spec??this._schemaDefinition,this._outputDefinition=e.output?.spec??this._schemaDefinition;else if(Hy(e)||pd(e)){let n=pd(e)?e.spec:e;this._schemaDefinition=n}else if(Vy(e)){let n=Wy(e.channels);this._schemaDefinition=n}else throw new Error("Invalid StateGraph input. Make sure to pass a valid Annotation.Root or Zod schema.");this._inputDefinition??=this._schemaDefinition,this._outputDefinition??=this._schemaDefinition,this._addSchema(this._schemaDefinition),this._addSchema(this._inputDefinition),this._addSchema(this._outputDefinition),Lt(t)&&(this._configRuntimeSchema=t)}get allEdges(){return new Set([...this.edges,...Array.from(this.waitingEdges).flatMap(([e,t])=>e.map(n=>[n,t]))])}_addSchema(e){if(!this._schemaDefinitions.has(e)){this._schemaDefinitions.set(e,e);for(let[t,n]of Object.entries(e)){let s;if(typeof n=="function"?s=n():s=n,this.channels[t]!==void 0){if(this.channels[t]!==s&&s.lc_graph_name!=="LastValue")throw new Error(`Channel "${t}" already exists with a different type.`)}else this.channels[t]=s}}}addNode(...e){function t(s){return s.length>=1&&typeof s[0]!="string"}let n=t(e)?Array.isArray(e[0])?e[0]:Object.entries(e[0]).map(([s,i])=>[s,i,i[Symbol.for("langgraph.state.node")]??void 0]):[[e[0],e[1],e[2]]];if(n.length===0)throw new Error("No nodes provided in `addNode`");for(let[s,i,o]of n){if(s in this.channels)throw new Error(`${s} is already being used as a state attribute (a.k.a. a channel), cannot also be used as a node name.`);for(let p of[le,Ke])if(s.includes(p))throw new Error(`"${p}" is a reserved character and is not allowed in node names.`);if(this.warnIfCompiled("Adding a node to a graph that has already been compiled. This will not be reflected in the compiled graph."),s in this.nodes)throw new Error(`Node \`${s}\` already present.`);if(s===K||s===q)throw new Error(`Node \`${s}\` is reserved.`);let a=this._schemaDefinition;o?.input!==void 0&&(Lt(o.input)?a=this._metaRegistry.getChannelsForSchema(o.input):o.input.spec!==void 0&&(a=o.input.spec)),a!==void 0&&this._addSchema(a);let u;Z.isRunnable(i)?u=i:typeof i=="function"?u=new Ie({func:i,name:s,trace:!1}):u=Ne(i);let c=o?.cachePolicy;typeof c=="boolean"&&(c=c?{}:void 0);let l={runnable:u,retryPolicy:o?.retryPolicy,cachePolicy:c,metadata:o?.metadata,input:a??this._schemaDefinition,subgraphs:ji(u)?[u]:o?.subgraphs,ends:o?.ends,defer:o?.defer};this.nodes[s]=l}return this}addEdge(e,t){if(typeof e=="string")return super.addEdge(e,t);this.compiled&&console.warn("Adding an edge to a graph that has already been compiled. This will not be reflected in the compiled graph.");for(let n of e){if(n===K)throw new Error("END cannot be a start node");if(!Object.keys(this.nodes).some(s=>s===n))throw new Error(`Need to add a node named "${n}" first`)}if(t===K)throw new Error("END cannot be an end node");if(!Object.keys(this.nodes).some(n=>n===t))throw new Error(`Need to add a node named "${t}" first`);return this.waitingEdges.add([e,t]),this}addSequence(e){let t=Array.isArray(e)?e:Object.entries(e).map(([s,i])=>[s,i,i[Symbol.for("langgraph.state.node")]??void 0]);if(t.length===0)throw new Error("Sequence requires at least one node.");let n;for(let[s,i,o]of t){if(s in this.nodes)throw new Error(`Node names must be unique: node with the name "${s}" already exists.`);let a=s;this.addNode(a,i,o),n!=null&&this.addEdge(n,a),n=a}return this}compile({checkpointer:e,store:t,cache:n,interruptBefore:s,interruptAfter:i,name:o,description:a}={}){this.validate([...Array.isArray(s)?s:[],...Array.isArray(i)?i:[]]);let u=Object.keys(this._schemaDefinitions.get(this._outputDefinition)),c=u.length===1&&u[0]===dr?dr:u,l=Object.keys(this.channels),p=l.length===1&&l[0]===dr?dr:l,h=new zi({builder:this,checkpointer:e,interruptAfter:i,interruptBefore:s,autoValidate:!1,nodes:{},channels:{...this.channels,[q]:new ft},inputChannels:q,outputChannels:c,streamChannels:p,streamMode:"updates",store:t,cache:n,name:o,description:a});h.attachNode(q);for(let[f,g]of Object.entries(this.nodes))h.attachNode(f,g);h.attachBranch(q,wl,fd(),{withReader:!1});for(let[f]of Object.entries(this.nodes))h.attachBranch(f,wl,fd(),{withReader:!1});for(let[f,g]of this.edges)h.attachEdge(f,g);for(let[f,g]of this.waitingEdges)h.attachEdge(f,g);for(let[f,g]of Object.entries(this.branches))for(let[b,_]of Object.entries(g))h.attachBranch(f,b,_);return h.validate()}};function Wy(r){let e={};for(let[t,n]of Object.entries(r))if(t===dr)e[t]=oa(n);else{let s=t;e[t]=oa(n)}return e}var zi=class extends Fi{constructor({description:e,...t}){super(t),Object.defineProperty(this,"description",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_metaRegistry",{enumerable:!0,configurable:!0,writable:!0,value:Ui}),this.description=e}attachNode(e,t){let n;e===q?n=Object.entries(this.builder._schemaDefinitions.get(this.builder._inputDefinition)).map(([u])=>u):n=Object.keys(this.builder.channels);function s(u){if(Te(u))return u.graph===Ce.PARENT?null:u._updateAsTuples();if(Array.isArray(u)&&u.length>0&&u.some(c=>Te(c))){let c=[];for(let l of u)if(Te(l)){if(l.graph===Ce.PARENT)continue;c.push(...l._updateAsTuples())}else c.push([dr,l]);return c}else if(u!=null)return[[dr,u]];return null}let i=e;function o(u){if(u){if(Te(u))return u.graph===Ce.PARENT?null:u._updateAsTuples().filter(([c])=>n.includes(c));if(Array.isArray(u)&&u.length>0&&u.some(Te)){let c=[];for(let l of u)if(Te(l)){if(l.graph===Ce.PARENT)continue;c.push(...l._updateAsTuples().filter(([p])=>n.includes(p)))}else{let p=o(l);p&&c.push(...p??[])}return c}else{if(typeof u=="object"&&!Array.isArray(u))return Object.entries(u).filter(([c])=>n.includes(c));{let c=Array.isArray(u)?"array":typeof u;throw new X(`Expected node "${i.toString()}" to return an object or an array containing at least one Command object, received ${c}`,{lc_error_code:"INVALID_GRAPH_NODE_RETURN_VALUE"})}}}else return null}let a=[{value:Je,mapper:new Ie({func:n.length&&n[0]===dr?s:o,trace:!1,recurse:!1})}];if(e===q)this.nodes[e]=new et({tags:[ee],triggers:[q],channels:[q],writers:[new ue(a,[ee])]});else{let u=t?.input??this.builder._schemaDefinition,c=Object.fromEntries(Object.keys(this.builder._schemaDefinitions.get(u)).map(h=>[h,h])),l=Object.keys(c).length===1&&dr in c,p=`branch:to:${e}`;this.channels[p]=t?.defer?new sa:new ft(!1),this.nodes[e]=new et({triggers:[p],channels:l?Object.keys(c):c,writers:[new ue(a,[ee])],mapper:l?void 0:h=>Object.fromEntries(Object.entries(h).filter(([f])=>f in c)),bound:t?.runnable,metadata:t?.metadata,retryPolicy:t?.retryPolicy,cachePolicy:t?.cachePolicy,subgraphs:t?.subgraphs,ends:t?.ends})}}attachEdge(e,t){if(t!==K){if(typeof e=="string")this.nodes[e].writers.push(new ue([{channel:`branch:to:${t}`,value:null}],[ee]));else if(Array.isArray(e)){let n=`join:${e.join("+")}:${t}`;this.channels[n]=this.builder.nodes[t].defer?new Ma(new Set(e)):new ja(new Set(e)),this.nodes[t].triggers.push(n);for(let s of e)this.nodes[s].writers.push(new ue([{channel:n,value:s}],[ee]))}}}attachBranch(e,t,n,s={withReader:!0}){let i=async(o,a)=>{let u=o.filter(l=>l!==K);if(!u.length)return;let c=u.map(l=>Ee(l)?l:{channel:l===K?l:`branch:to:${l}`,value:e});await ue.doWrite({...a,tags:(a.tags??[]).concat([ee])},c)};this.nodes[e].writers.push(n.run(i,s.withReader?o=>da.doRead(o,this.streamChannels??this.outputChannels,!0):void 0))}async _validateInput(e){if(e==null)return e;let t=(()=>{let n=this.builder._inputRuntimeDefinition,s=this.builder._schemaRuntimeDefinition,i=o=>{if(o!=null)return this._metaRegistry.getExtendedChannelSchemas(o,{withReducerSchema:!0})};if(Lt(n))return i(n);if(n===Ll)return li(i(s))})();if(Te(e)){let n=e;return e.update&&t!=null&&(n.update=ci(t,e.update)),n}return t!=null?ci(t,e):e}async _validateContext(e){let t=this.builder._configRuntimeSchema;return Lt(t)&&ci(t,e),e}};function Hy(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)&&Object.keys(r).length>0&&Object.values(r).every(e=>typeof e=="function"||gl(e))}function pd(r){return typeof r=="object"&&r!==null&&"lc_graph_name"in r&&r.lc_graph_name==="AnnotationRoot"}function Vy(r){return typeof r=="object"&&r!==null&&r.channels!==void 0}function Gy(r){return typeof r=="object"&&r!==null&&r.stateSchema!==void 0}function qy(r){return typeof r=="object"&&r!==null&&r.stateSchema===void 0&&r.input!==void 0&&r.output!==void 0}function Jy(r){return!(typeof r!="object"||r==null||!("state"in r)||!Lt(r.state)||"input"in r&&!Lt(r.input)||"output"in r&&!Lt(r.output))}function Xy(r){if(Ee(r))return[r];let e=[];Te(r)?e.push(r):Array.isArray(r)&&e.push(...r.filter(Te));let t=[];for(let n of e){if(n.graph===Ce.PARENT)throw new fi(n);Ee(n.goto)||typeof n.goto=="string"?t.push(n.goto):Array.isArray(n.goto)&&t.push(...n.goto)}return t}function fd(){let r=new Ie({func:Xy,tags:[ee],trace:!1,recurse:!1,name:"<control_branch>"});return new Li({path:r})}var Fl="__remove_all__";function jr(r,e){let t=Array.isArray(r)?r:[r],n=Array.isArray(e)?e:[e],s=t.map(Dt),i=n.map(Dt);for(let l of s)(l.id===null||l.id===void 0)&&(l.id=Eu(),l.lc_kwargs.id=l.id);let o;for(let l=0;l<i.length;l+=1){let p=i[l];(p.id===null||p.id===void 0)&&(p.id=Eu(),p.lc_kwargs.id=p.id),p.getType()==="remove"&&p.id===Fl&&(o=l)}if(o!=null)return i.slice(o+1);let a=[...s],u=new Map(a.map((l,p)=>[l.id,p])),c=new Set;for(let l of i){let p=u.get(l.id);if(p!==void 0)l.getType()==="remove"?c.add(l.id):(c.delete(l.id),a[p]=l);else{if(l.getType()==="remove")throw new Error(`Attempting to delete a message with an ID that doesn't exist ('${l.id}')`);u.set(l.id,a.length),a.push(l)}}return a.filter(l=>!c.has(l.id))}var hd=function(e,t){let{name:n,checkpointer:s,store:i,cache:o}=typeof e=="string"?{name:e,checkpointer:void 0,store:void 0}:e;if(Dh(t)||$h(t))throw new Error("Generators are disallowed as entrypoints. For streaming responses, use config.write.");let a="updates",u=Qh(n,t);function c(f){return typeof f=="object"&&f!==null&&"__lg_type"in f&&f.__lg_type==="__pregel_final"}let l=new Ie({name:"pluckReturnValue",func:f=>c(f)?f.value:f}),p=new Ie({name:"pluckSaveValue",func:f=>c(f)?f.save:f}),h=new et({bound:u,triggers:[q],channels:[q],writers:[new ue([{channel:K,value:Je,mapper:l},{channel:ln,value:Je,mapper:p}],[ee])]});return new gs({name:n,checkpointer:s,nodes:{[n]:h},channels:{[q]:new ft,[K]:new Ht,[ln]:new Ht},inputChannels:q,outputChannels:K,streamChannels:K,streamMode:a,store:i,cache:o})};hd.final=function({value:e,save:t}){return{value:e,save:t,__lg_type:"__pregel_final"}};var Qy=lt.Root({messages:lt({reducer:jr,default:()=>[]})}),dd={reducer:{fn:jr},jsonSchemaExtra:{langgraph_type:"messages"},default:()=>[]},e_=ae.object({messages:ld(ae.custom(),dd)});async function Ul(r,e,t){if(t===void 0)throw new Error(["Unable to dispatch a custom event without a parent run id.",'"dispatchCustomEvent" can only be called from within an existing run (e.g.,',"inside a tool or a RunnableLambda).",`
91
89
 
92
90
  If you continue to see this error, please import from "@langchain/core/callbacks/dispatch/web"`,"and explicitly pass in a config parameter.",`
93
91
 
94
92
  Or, if you are calling this from a custom tool, ensure you're using the "tool" helper constructor as documented here:`,`
95
93
  |`,`
96
94
  \u2514-> https://js.langchain.com/docs/how_to/custom_tools#tool-function`,`
97
- `].join(" "));let n=await xr(t),s=n?.getParentRunId();n!==void 0&&s!==void 0&&await n.handleCustomEvent?.(r,e,s)}function L(r,e,t,n,s){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?r!==e||!s:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?s.call(r,t):s?s.value=t:e.set(r,t),t}function x(r,e,t,n){if(t==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?n:t==="a"?n.call(r):n?n.value:e.get(r)}var Ll=function(){let{crypto:r}=globalThis;if(r?.randomUUID)return Ll=r.randomUUID.bind(r),r.randomUUID();let e=new Uint8Array(1),t=r?()=>r.getRandomValues(e)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,n=>(+n^t()&15>>+n/4).toString(16))};function Bi(r){return typeof r=="object"&&r!==null&&("name"in r&&r.name==="AbortError"||"message"in r&&String(r.message).includes("FetchRequestCanceledException"))}var Ki=r=>{if(r instanceof Error)return r;if(typeof r=="object"&&r!==null){try{if(Object.prototype.toString.call(r)==="[object Error]"){let e=new Error(r.message,r.cause?{cause:r.cause}:{});return r.stack&&(e.stack=r.stack),r.cause&&!e.cause&&(e.cause=r.cause),r.name&&(e.name=r.name),e}}catch{}try{return new Error(JSON.stringify(r))}catch{}}return new Error(r)};var N=class extends Error{},_e=class r extends N{constructor(e,t,n,s){super(`${r.makeMessage(e,t,n)}`),this.status=e,this.headers=s,this.requestID=s?.get("x-request-id"),this.error=t;let i=t;this.code=i?.code,this.param=i?.param,this.type=i?.type}static makeMessage(e,t,n){let s=t?.message?typeof t.message=="string"?t.message:JSON.stringify(t.message):t?JSON.stringify(t):n;return e&&s?`${e} ${s}`:e?`${e} status code (no body)`:s||"(no status code or body)"}static generate(e,t,n,s){if(!e||!s)return new Nr({message:n,cause:Ki(t)});let i=t?.error;return e===400?new bs(e,i,n,s):e===401?new ys(e,i,n,s):e===403?new _s(e,i,n,s):e===404?new ws(e,i,n,s):e===409?new xs(e,i,n,s):e===422?new vs(e,i,n,s):e===429?new As(e,i,n,s):e>=500?new Os(e,i,n,s):new r(e,i,n,s)}},fe=class extends _e{constructor({message:e}={}){super(void 0,void 0,e||"Request was aborted.",void 0)}},Nr=class extends _e{constructor({message:e,cause:t}){super(void 0,void 0,e||"Connection error.",void 0),t&&(this.cause=t)}},Jt=class extends Nr{constructor({message:e}={}){super({message:e??"Request timed out."})}},bs=class extends _e{},ys=class extends _e{},_s=class extends _e{},ws=class extends _e{},xs=class extends _e{},vs=class extends _e{},As=class extends _e{},Os=class extends _e{},Ps=class extends N{constructor(){super("Could not parse response content as the length limit was reached")}},Es=class extends N{constructor(){super("Could not parse response content as the request was rejected by the content filter")}},Xt=class extends Error{constructor(e){super(e)}};var Xy=/^[a-z][a-z0-9+.-]*:/i,pd=r=>Xy.test(r),Ue=r=>(Ue=Array.isArray,Ue(r)),Fl=Ue;function fd(r){return typeof r!="object"?{}:r??{}}function hd(r){if(!r)return!0;for(let e in r)return!1;return!0}function dd(r,e){return Object.prototype.hasOwnProperty.call(r,e)}function Is(r){return r!=null&&typeof r=="object"&&!Array.isArray(r)}var md=(r,e)=>{if(typeof e!="number"||!Number.isInteger(e))throw new N(`${r} must be an integer`);if(e<0)throw new N(`${r} must be a positive integer`);return e};var gd=r=>{try{return JSON.parse(r)}catch{return}};var Yt=r=>new Promise(e=>setTimeout(e,r));var jr="5.12.2";var wd=()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u";function Yy(){return typeof Deno<"u"&&Deno.build!=null?"deno":typeof EdgeRuntime<"u"?"edge":Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]"?"node":"unknown"}var Zy=()=>{let r=Yy();if(r==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":jr,"X-Stainless-OS":yd(Deno.build.os),"X-Stainless-Arch":bd(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version=="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":jr,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(r==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":jr,"X-Stainless-OS":yd(globalThis.process.platform??"unknown"),"X-Stainless-Arch":bd(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let e=Qy();return e?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":jr,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${e.browser}`,"X-Stainless-Runtime-Version":e.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":jr,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function Qy(){if(typeof navigator>"u"||!navigator)return null;let r=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:e,pattern:t}of r){let n=t.exec(navigator.userAgent);if(n){let s=n[1]||0,i=n[2]||0,o=n[3]||0;return{browser:e,version:`${s}.${i}.${o}`}}}return null}var bd=r=>r==="x32"?"x32":r==="x86_64"||r==="x64"?"x64":r==="arm"?"arm":r==="aarch64"||r==="arm64"?"arm64":r?`other:${r}`:"unknown",yd=r=>(r=r.toLowerCase(),r.includes("ios")?"iOS":r==="android"?"Android":r==="darwin"?"MacOS":r==="win32"?"Windows":r==="freebsd"?"FreeBSD":r==="openbsd"?"OpenBSD":r==="linux"?"Linux":r?`Other:${r}`:"Unknown"),_d,xd=()=>_d??(_d=Zy());function vd(){if(typeof fetch<"u")return fetch;throw new Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function Ul(...r){let e=globalThis.ReadableStream;if(typeof e>"u")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new e(...r)}function ja(r){let e=Symbol.asyncIterator in r?r[Symbol.asyncIterator]():r[Symbol.iterator]();return Ul({start(){},async pull(t){let{done:n,value:s}=await e.next();n?t.close():t.enqueue(s)},async cancel(){await e.return?.()}})}function zl(r){if(r[Symbol.asyncIterator])return r;let e=r.getReader();return{async next(){try{let t=await e.read();return t?.done&&e.releaseLock(),t}catch(t){throw e.releaseLock(),t}},async return(){let t=e.cancel();return e.releaseLock(),await t,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function Ad(r){if(r===null||typeof r!="object")return;if(r[Symbol.asyncIterator]){await r[Symbol.asyncIterator]().return?.();return}let e=r.getReader(),t=e.cancel();e.releaseLock(),await t}var Od=({headers:r,body:e})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(e)});var Ma="RFC3986",Bl=r=>String(r),Da={RFC1738:r=>String(r).replace(/%20/g,"+"),RFC3986:Bl},Kl="RFC1738";var $a=(r,e)=>($a=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),$a(r,e)),Zt=(()=>{let r=[];for(let e=0;e<256;++e)r.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return r})();var Wl=1024,Pd=(r,e,t,n,s)=>{if(r.length===0)return r;let i=r;if(typeof r=="symbol"?i=Symbol.prototype.toString.call(r):typeof r!="string"&&(i=String(r)),t==="iso-8859-1")return escape(i).replace(/%u[0-9a-f]{4}/gi,function(a){return"%26%23"+parseInt(a.slice(2),16)+"%3B"});let o="";for(let a=0;a<i.length;a+=Wl){let u=i.length>=Wl?i.slice(a,a+Wl):i,c=[];for(let l=0;l<u.length;++l){let p=u.charCodeAt(l);if(p===45||p===46||p===95||p===126||p>=48&&p<=57||p>=65&&p<=90||p>=97&&p<=122||s===Kl&&(p===40||p===41)){c[c.length]=u.charAt(l);continue}if(p<128){c[c.length]=Zt[p];continue}if(p<2048){c[c.length]=Zt[192|p>>6]+Zt[128|p&63];continue}if(p<55296||p>=57344){c[c.length]=Zt[224|p>>12]+Zt[128|p>>6&63]+Zt[128|p&63];continue}l+=1,p=65536+((p&1023)<<10|u.charCodeAt(l)&1023),c[c.length]=Zt[240|p>>18]+Zt[128|p>>12&63]+Zt[128|p>>6&63]+Zt[128|p&63]}o+=c.join("")}return o};function Ed(r){return!r||typeof r!="object"?!1:!!(r.constructor&&r.constructor.isBuffer&&r.constructor.isBuffer(r))}function Hl(r,e){if(Ue(r)){let t=[];for(let n=0;n<r.length;n+=1)t.push(e(r[n]));return t}return e(r)}var kd={brackets(r){return String(r)+"[]"},comma:"comma",indices(r,e){return String(r)+"["+e+"]"},repeat(r){return String(r)}},Sd=function(r,e){Array.prototype.push.apply(r,Ue(e)?e:[e])},Id,we={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:Pd,encodeValuesOnly:!1,format:Ma,formatter:Bl,indices:!1,serializeDate(r){return(Id??(Id=Function.prototype.call.bind(Date.prototype.toISOString)))(r)},skipNulls:!1,strictNullHandling:!1};function r_(r){return typeof r=="string"||typeof r=="number"||typeof r=="boolean"||typeof r=="symbol"||typeof r=="bigint"}var Vl={};function Cd(r,e,t,n,s,i,o,a,u,c,l,p,h,f,g,b,_,I){let v=r,S=I,C=0,j=!1;for(;(S=S.get(Vl))!==void 0&&!j;){let $=S.get(r);if(C+=1,typeof $<"u"){if($===C)throw new RangeError("Cyclic object value");j=!0}typeof S.get(Vl)>"u"&&(C=0)}if(typeof c=="function"?v=c(e,v):v instanceof Date?v=h?.(v):t==="comma"&&Ue(v)&&(v=Hl(v,function($){return $ instanceof Date?h?.($):$})),v===null){if(i)return u&&!b?u(e,we.encoder,_,"key",f):e;v=""}if(r_(v)||Ed(v)){if(u){let $=b?e:u(e,we.encoder,_,"key",f);return[g?.($)+"="+g?.(u(v,we.encoder,_,"value",f))]}return[g?.(e)+"="+g?.(String(v))]}let F=[];if(typeof v>"u")return F;let D;if(t==="comma"&&Ue(v))b&&u&&(v=Hl(v,u)),D=[{value:v.length>0?v.join(",")||null:void 0}];else if(Ue(c))D=c;else{let $=Object.keys(v);D=l?$.sort(l):$}let y=a?String(e).replace(/\./g,"%2E"):String(e),T=n&&Ue(v)&&v.length===1?y+"[]":y;if(s&&Ue(v)&&v.length===0)return T+"[]";for(let $=0;$<D.length;++$){let P=D[$],J=typeof P=="object"&&typeof P.value<"u"?P.value:v[P];if(o&&J===null)continue;let ie=p&&a?P.replace(/\./g,"%2E"):P,le=Ue(v)?typeof t=="function"?t(T,ie):T:T+(p?"."+ie:"["+ie+"]");I.set(r,C);let Nt=new WeakMap;Nt.set(Vl,I),Sd(F,Cd(J,le,t,n,s,i,o,a,t==="comma"&&b&&Ue(v)?null:u,c,l,p,h,f,g,b,_,Nt))}return F}function n_(r=we){if(typeof r.allowEmptyArrays<"u"&&typeof r.allowEmptyArrays!="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof r.encodeDotInKeys<"u"&&typeof r.encodeDotInKeys!="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(r.encoder!==null&&typeof r.encoder<"u"&&typeof r.encoder!="function")throw new TypeError("Encoder has to be a function.");let e=r.charset||we.charset;if(typeof r.charset<"u"&&r.charset!=="utf-8"&&r.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let t=Ma;if(typeof r.format<"u"){if(!$a(Da,r.format))throw new TypeError("Unknown format option provided.");t=r.format}let n=Da[t],s=we.filter;(typeof r.filter=="function"||Ue(r.filter))&&(s=r.filter);let i;if(r.arrayFormat&&r.arrayFormat in kd?i=r.arrayFormat:"indices"in r?i=r.indices?"indices":"repeat":i=we.arrayFormat,"commaRoundTrip"in r&&typeof r.commaRoundTrip!="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");let o=typeof r.allowDots>"u"?r.encodeDotInKeys?!0:we.allowDots:!!r.allowDots;return{addQueryPrefix:typeof r.addQueryPrefix=="boolean"?r.addQueryPrefix:we.addQueryPrefix,allowDots:o,allowEmptyArrays:typeof r.allowEmptyArrays=="boolean"?!!r.allowEmptyArrays:we.allowEmptyArrays,arrayFormat:i,charset:e,charsetSentinel:typeof r.charsetSentinel=="boolean"?r.charsetSentinel:we.charsetSentinel,commaRoundTrip:!!r.commaRoundTrip,delimiter:typeof r.delimiter>"u"?we.delimiter:r.delimiter,encode:typeof r.encode=="boolean"?r.encode:we.encode,encodeDotInKeys:typeof r.encodeDotInKeys=="boolean"?r.encodeDotInKeys:we.encodeDotInKeys,encoder:typeof r.encoder=="function"?r.encoder:we.encoder,encodeValuesOnly:typeof r.encodeValuesOnly=="boolean"?r.encodeValuesOnly:we.encodeValuesOnly,filter:s,format:t,formatter:n,serializeDate:typeof r.serializeDate=="function"?r.serializeDate:we.serializeDate,skipNulls:typeof r.skipNulls=="boolean"?r.skipNulls:we.skipNulls,sort:typeof r.sort=="function"?r.sort:null,strictNullHandling:typeof r.strictNullHandling=="boolean"?r.strictNullHandling:we.strictNullHandling}}function Gl(r,e={}){let t=r,n=n_(e),s,i;typeof n.filter=="function"?(i=n.filter,t=i("",t)):Ue(n.filter)&&(i=n.filter,s=i);let o=[];if(typeof t!="object"||t===null)return"";let a=kd[n.arrayFormat],u=a==="comma"&&n.commaRoundTrip;s||(s=Object.keys(t)),n.sort&&s.sort(n.sort);let c=new WeakMap;for(let h=0;h<s.length;++h){let f=s[h];n.skipNulls&&t[f]===null||Sd(o,Cd(t[f],f,a,u,n.allowEmptyArrays,n.strictNullHandling,n.skipNulls,n.encodeDotInKeys,n.encode?n.encoder:null,n.filter,n.sort,n.allowDots,n.serializeDate,n.format,n.formatter,n.encodeValuesOnly,n.charset,c))}let l=o.join(n.delimiter),p=n.addQueryPrefix===!0?"?":"";return n.charsetSentinel&&(n.charset==="iso-8859-1"?p+="utf8=%26%2310003%3B&":p+="utf8=%E2%9C%93&"),l.length>0?p+l:""}function Nd(r){let e=0;for(let s of r)e+=s.length;let t=new Uint8Array(e),n=0;for(let s of r)t.set(s,n),n+=s.length;return t}var Td;function ks(r){let e;return(Td??(e=new globalThis.TextEncoder,Td=e.encode.bind(e)))(r)}var Rd;function ql(r){let e;return(Rd??(e=new globalThis.TextDecoder,Rd=e.decode.bind(e)))(r)}var tt,rt,gn=class{constructor(){tt.set(this,void 0),rt.set(this,void 0),L(this,tt,new Uint8Array,"f"),L(this,rt,null,"f")}decode(e){if(e==null)return[];let t=e instanceof ArrayBuffer?new Uint8Array(e):typeof e=="string"?ks(e):e;L(this,tt,Nd([x(this,tt,"f"),t]),"f");let n=[],s;for(;(s=i_(x(this,tt,"f"),x(this,rt,"f")))!=null;){if(s.carriage&&x(this,rt,"f")==null){L(this,rt,s.index,"f");continue}if(x(this,rt,"f")!=null&&(s.index!==x(this,rt,"f")+1||s.carriage)){n.push(ql(x(this,tt,"f").subarray(0,x(this,rt,"f")-1))),L(this,tt,x(this,tt,"f").subarray(x(this,rt,"f")),"f"),L(this,rt,null,"f");continue}let i=x(this,rt,"f")!==null?s.preceding-1:s.preceding,o=ql(x(this,tt,"f").subarray(0,i));n.push(o),L(this,tt,x(this,tt,"f").subarray(s.index),"f"),L(this,rt,null,"f")}return n}flush(){return x(this,tt,"f").length?this.decode(`
98
- `):[]}};tt=new WeakMap,rt=new WeakMap;gn.NEWLINE_CHARS=new Set([`
99
- `,"\r"]);gn.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function i_(r,e){for(let s=e??0;s<r.length;s++){if(r[s]===10)return{preceding:s,index:s+1,carriage:!1};if(r[s]===13)return{preceding:s,index:s+1,carriage:!0}}return null}function jd(r){for(let n=0;n<r.length-1;n++){if(r[n]===10&&r[n+1]===10||r[n]===13&&r[n+1]===13)return n+2;if(r[n]===13&&r[n+1]===10&&n+3<r.length&&r[n+2]===13&&r[n+3]===10)return n+4}return-1}var Fa={off:0,error:200,warn:300,info:400,debug:500},Jl=(r,e,t)=>{if(r){if(dd(Fa,r))return r;me(t).warn(`${e} was set to ${JSON.stringify(r)}, expected one of ${JSON.stringify(Object.keys(Fa))}`)}};function Wi(){}function La(r,e,t){return!e||Fa[r]>Fa[t]?Wi:e[r].bind(e)}var o_={error:Wi,warn:Wi,info:Wi,debug:Wi},Md=new WeakMap;function me(r){let e=r.logger,t=r.logLevel??"off";if(!e)return o_;let n=Md.get(e);if(n&&n[0]===t)return n[1];let s={error:La("error",e,t),warn:La("warn",e,t),info:La("info",e,t),debug:La("debug",e,t)};return Md.set(e,[t,s]),s}var dr=r=>(r.options&&(r.options={...r.options},delete r.options.headers),r.headers&&(r.headers=Object.fromEntries((r.headers instanceof Headers?[...r.headers]:Object.entries(r.headers)).map(([e,t])=>[e,e.toLowerCase()==="authorization"||e.toLowerCase()==="cookie"||e.toLowerCase()==="set-cookie"?"***":t]))),"retryOfRequestLogID"in r&&(r.retryOfRequestLogID&&(r.retryOf=r.retryOfRequestLogID),delete r.retryOfRequestLogID),r);var Hi,Qt=class r{constructor(e,t,n){this.iterator=e,Hi.set(this,void 0),this.controller=t,L(this,Hi,n,"f")}static fromSSEResponse(e,t,n){let s=!1,i=n?me(n):console;async function*o(){if(s)throw new N("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let a=!1;try{for await(let u of a_(e,t))if(!a){if(u.data.startsWith("[DONE]")){a=!0;continue}if(u.event===null||!u.event.startsWith("thread.")){let c;try{c=JSON.parse(u.data)}catch(l){throw i.error("Could not parse message into JSON:",u.data),i.error("From chunk:",u.raw),l}if(c&&c.error)throw new _e(void 0,c.error,void 0,e.headers);yield c}else{let c;try{c=JSON.parse(u.data)}catch(l){throw console.error("Could not parse message into JSON:",u.data),console.error("From chunk:",u.raw),l}if(u.event=="error")throw new _e(void 0,c.error,c.message,void 0);yield{event:u.event,data:c}}}a=!0}catch(u){if(Bi(u))return;throw u}finally{a||t.abort()}}return new r(o,t,n)}static fromReadableStream(e,t,n){let s=!1;async function*i(){let a=new gn,u=zl(e);for await(let c of u)for(let l of a.decode(c))yield l;for(let c of a.flush())yield c}async function*o(){if(s)throw new N("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let a=!1;try{for await(let u of i())a||u&&(yield JSON.parse(u));a=!0}catch(u){if(Bi(u))return;throw u}finally{a||t.abort()}}return new r(o,t,n)}[(Hi=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let e=[],t=[],n=this.iterator(),s=i=>({next:()=>{if(i.length===0){let o=n.next();e.push(o),t.push(o)}return i.shift()}});return[new r(()=>s(e),this.controller,x(this,Hi,"f")),new r(()=>s(t),this.controller,x(this,Hi,"f"))]}toReadableStream(){let e=this,t;return Ul({async start(){t=e[Symbol.asyncIterator]()},async pull(n){try{let{value:s,done:i}=await t.next();if(i)return n.close();let o=ks(JSON.stringify(s)+`
100
- `);n.enqueue(o)}catch(s){n.error(s)}},async cancel(){await t.return?.()}})}};async function*a_(r,e){if(!r.body)throw e.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative"?new N("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api"):new N("Attempted to iterate over a response with no body");let t=new Xl,n=new gn,s=zl(r.body);for await(let i of u_(s))for(let o of n.decode(i)){let a=t.decode(o);a&&(yield a)}for(let i of n.flush()){let o=t.decode(i);o&&(yield o)}}async function*u_(r){let e=new Uint8Array;for await(let t of r){if(t==null)continue;let n=t instanceof ArrayBuffer?new Uint8Array(t):typeof t=="string"?ks(t):t,s=new Uint8Array(e.length+n.length);s.set(e),s.set(n,e.length),e=s;let i;for(;(i=jd(e))!==-1;)yield e.slice(0,i),e=e.slice(i)}e.length>0&&(yield e)}var Xl=class{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){if(e.endsWith("\r")&&(e=e.substring(0,e.length-1)),!e){if(!this.event&&!this.data.length)return null;let i={event:this.event,data:this.data.join(`
101
- `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],i}if(this.chunks.push(e),e.startsWith(":"))return null;let[t,n,s]=c_(e,":");return s.startsWith(" ")&&(s=s.substring(1)),t==="event"?this.event=s:t==="data"&&this.data.push(s),null}};function c_(r,e){let t=r.indexOf(e);return t!==-1?[r.substring(0,t),e,r.substring(t+e.length)]:[r,"",""]}async function Ua(r,e){let{response:t,requestLogID:n,retryOfRequestLogID:s,startTime:i}=e,o=await(async()=>{if(e.options.stream)return me(r).debug("response",t.status,t.url,t.headers,t.body),e.options.__streamClass?e.options.__streamClass.fromSSEResponse(t,e.controller,r):Qt.fromSSEResponse(t,e.controller,r);if(t.status===204)return null;if(e.options.__binaryResponse)return t;let u=t.headers.get("content-type")?.split(";")[0]?.trim();if(u?.includes("application/json")||u?.endsWith("+json")){let p=await t.json();return Yl(p,t)}return await t.text()})();return me(r).debug(`[${n}] response parsed`,dr({retryOfRequestLogID:s,url:t.url,status:t.status,body:o,durationMs:Date.now()-i})),o}function Yl(r,e){return!r||typeof r!="object"||Array.isArray(r)?r:Object.defineProperty(r,"_request_id",{value:e.headers.get("x-request-id"),enumerable:!1})}var Vi,bn=class r extends Promise{constructor(e,t,n=Ua){super(s=>{s(null)}),this.responsePromise=t,this.parseResponse=n,Vi.set(this,void 0),L(this,Vi,e,"f")}_thenUnwrap(e){return new r(x(this,Vi,"f"),this.responsePromise,async(t,n)=>Yl(e(await this.parseResponse(t,n),n),n.response))}asResponse(){return this.responsePromise.then(e=>e.response)}async withResponse(){let[e,t]=await Promise.all([this.parse(),this.asResponse()]);return{data:e,response:t,request_id:t.headers.get("x-request-id")}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(e=>this.parseResponse(x(this,Vi,"f"),e))),this.parsedPromise}then(e,t){return this.parse().then(e,t)}catch(e){return this.parse().catch(e)}finally(e){return this.parse().finally(e)}};Vi=new WeakMap;var za,Ba=class{constructor(e,t,n,s){za.set(this,void 0),L(this,za,e,"f"),this.options=s,this.response=t,this.body=n}hasNextPage(){return this.getPaginatedItems().length?this.nextPageRequestOptions()!=null:!1}async getNextPage(){let e=this.nextPageRequestOptions();if(!e)throw new N("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await x(this,za,"f").requestAPIList(this.constructor,e)}async*iterPages(){let e=this;for(yield e;e.hasNextPage();)e=await e.getNextPage(),yield e}async*[(za=new WeakMap,Symbol.asyncIterator)](){for await(let e of this.iterPages())for(let t of e.getPaginatedItems())yield t}},Gi=class extends bn{constructor(e,t,n){super(e,t,async(s,i)=>new n(s,i.response,await Ua(s,i),i.options))}async*[Symbol.asyncIterator](){let e=await this;for await(let t of e)yield t}},er=class extends Ba{constructor(e,t,n,s){super(e,t,n,s),this.data=n.data||[],this.object=n.object}getPaginatedItems(){return this.data??[]}nextPageRequestOptions(){return null}},W=class extends Ba{constructor(e,t,n,s){super(e,t,n,s),this.data=n.data||[],this.has_more=n.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageRequestOptions(){let e=this.getPaginatedItems(),t=e[e.length-1]?.id;return t?{...this.options,query:{...fd(this.options.query),after:t}}:null}};var Ql=()=>{if(typeof File>"u"){let{process:r}=globalThis,e=typeof r?.versions?.node=="string"&&parseInt(r.versions.node.split("."))<20;throw new Error("`File` is not defined as a global, which is required for file uploads."+(e?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function Ss(r,e,t){return Ql(),new File(r,e??"unknown_file",t)}function qi(r){return(typeof r=="object"&&r!==null&&("name"in r&&r.name&&String(r.name)||"url"in r&&r.url&&String(r.url)||"filename"in r&&r.filename&&String(r.filename)||"path"in r&&r.path&&String(r.path))||"").split(/[\\/]/).pop()||void 0}var ep=r=>r!=null&&typeof r=="object"&&typeof r[Symbol.asyncIterator]=="function";var nt=async(r,e)=>({...r,body:await f_(r.body,e)}),Dd=new WeakMap;function p_(r){let e=typeof r=="function"?r:r.fetch,t=Dd.get(e);if(t)return t;let n=(async()=>{try{let s="Response"in e?e.Response:(await e("data:,")).constructor,i=new FormData;return i.toString()!==await new s(i).text()}catch{return!0}})();return Dd.set(e,n),n}var f_=async(r,e)=>{if(!await p_(e))throw new TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let t=new FormData;return await Promise.all(Object.entries(r||{}).map(([n,s])=>Zl(t,n,s))),t},h_=r=>r instanceof Blob&&"name"in r;var Zl=async(r,e,t)=>{if(t!==void 0){if(t==null)throw new TypeError(`Received null for "${e}"; to pass null in FormData, you must use the string 'null'`);if(typeof t=="string"||typeof t=="number"||typeof t=="boolean")r.append(e,String(t));else if(t instanceof Response)r.append(e,Ss([await t.blob()],qi(t)));else if(ep(t))r.append(e,Ss([await new Response(ja(t)).blob()],qi(t)));else if(h_(t))r.append(e,t,qi(t));else if(Array.isArray(t))await Promise.all(t.map(n=>Zl(r,e+"[]",n)));else if(typeof t=="object")await Promise.all(Object.entries(t).map(([n,s])=>Zl(r,`${e}[${n}]`,s)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${t} instead`)}};var $d=r=>r!=null&&typeof r=="object"&&typeof r.size=="number"&&typeof r.type=="string"&&typeof r.text=="function"&&typeof r.slice=="function"&&typeof r.arrayBuffer=="function",d_=r=>r!=null&&typeof r=="object"&&typeof r.name=="string"&&typeof r.lastModified=="number"&&$d(r),m_=r=>r!=null&&typeof r=="object"&&typeof r.url=="string"&&typeof r.blob=="function";async function Ji(r,e,t){if(Ql(),r=await r,d_(r))return r instanceof File?r:Ss([await r.arrayBuffer()],r.name);if(m_(r)){let s=await r.blob();return e||(e=new URL(r.url).pathname.split(/[\\/]/).pop()),Ss(await tp(s),e,t)}let n=await tp(r);if(e||(e=qi(r)),!t?.type){let s=n.find(i=>typeof i=="object"&&"type"in i&&i.type);typeof s=="string"&&(t={...t,type:s})}return Ss(n,e,t)}async function tp(r){let e=[];if(typeof r=="string"||ArrayBuffer.isView(r)||r instanceof ArrayBuffer)e.push(r);else if($d(r))e.push(r instanceof Blob?r:await r.arrayBuffer());else if(ep(r))for await(let t of r)e.push(...await tp(t));else{let t=r?.constructor?.name;throw new Error(`Unexpected data type: ${typeof r}${t?`; constructor: ${t}`:""}${g_(r)}`)}return e}function g_(r){return typeof r!="object"||r===null?"":`; props: [${Object.getOwnPropertyNames(r).map(t=>`"${t}"`).join(", ")}]`}var E=class{constructor(e){this._client=e}};function Fd(r){return r.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var Ld=Object.freeze(Object.create(null)),y_=(r=Fd)=>function(t,...n){if(t.length===1)return t[0];let s=!1,i=[],o=t.reduce((l,p,h)=>{/[?#]/.test(p)&&(s=!0);let f=n[h],g=(s?encodeURIComponent:r)(""+f);return h!==n.length&&(f==null||typeof f=="object"&&f.toString===Object.getPrototypeOf(Object.getPrototypeOf(f.hasOwnProperty??Ld)??Ld)?.toString)&&(g=f+"",i.push({start:l.length+p.length,length:g.length,error:`Value of type ${Object.prototype.toString.call(f).slice(8,-1)} is not a valid path parameter`})),l+p+(h===n.length?"":g)},""),a=o.split(/[?#]/,1)[0],u=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,c;for(;(c=u.exec(a))!==null;)i.push({start:c.index,length:c[0].length,error:`Value "${c[0]}" can't be safely passed as a path parameter`});if(i.sort((l,p)=>l.start-p.start),i.length>0){let l=0,p=i.reduce((h,f)=>{let g=" ".repeat(f.start-l),b="^".repeat(f.length);return l=f.start+f.length,h+g+b},"");throw new N(`Path parameters result in path with invalid segments:
95
+ `].join(" "));let n=await vr(t),s=n?.getParentRunId();n!==void 0&&s!==void 0&&await n.handleCustomEvent?.(r,e,s)}function L(r,e,t,n,s){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?r!==e||!s:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?s.call(r,t):s?s.value=t:e.set(r,t),t}function x(r,e,t,n){if(t==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?n:t==="a"?n.call(r):n?n.value:e.get(r)}var zl=function(){let{crypto:r}=globalThis;if(r?.randomUUID)return zl=r.randomUUID.bind(r),r.randomUUID();let e=new Uint8Array(1),t=r?()=>r.getRandomValues(e)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,n=>(+n^t()&15>>+n/4).toString(16))};function Bi(r){return typeof r=="object"&&r!==null&&("name"in r&&r.name==="AbortError"||"message"in r&&String(r.message).includes("FetchRequestCanceledException"))}var Ki=r=>{if(r instanceof Error)return r;if(typeof r=="object"&&r!==null){try{if(Object.prototype.toString.call(r)==="[object Error]"){let e=new Error(r.message,r.cause?{cause:r.cause}:{});return r.stack&&(e.stack=r.stack),r.cause&&!e.cause&&(e.cause=r.cause),r.name&&(e.name=r.name),e}}catch{}try{return new Error(JSON.stringify(r))}catch{}}return new Error(r)};var N=class extends Error{},_e=class r extends N{constructor(e,t,n,s){super(`${r.makeMessage(e,t,n)}`),this.status=e,this.headers=s,this.requestID=s?.get("x-request-id"),this.error=t;let i=t;this.code=i?.code,this.param=i?.param,this.type=i?.type}static makeMessage(e,t,n){let s=t?.message?typeof t.message=="string"?t.message:JSON.stringify(t.message):t?JSON.stringify(t):n;return e&&s?`${e} ${s}`:e?`${e} status code (no body)`:s||"(no status code or body)"}static generate(e,t,n,s){if(!e||!s)return new Mr({message:n,cause:Ki(t)});let i=t?.error;return e===400?new ys(e,i,n,s):e===401?new _s(e,i,n,s):e===403?new ws(e,i,n,s):e===404?new xs(e,i,n,s):e===409?new vs(e,i,n,s):e===422?new As(e,i,n,s):e===429?new Os(e,i,n,s):e>=500?new Ps(e,i,n,s):new r(e,i,n,s)}},fe=class extends _e{constructor({message:e}={}){super(void 0,void 0,e||"Request was aborted.",void 0)}},Mr=class extends _e{constructor({message:e,cause:t}){super(void 0,void 0,e||"Connection error.",void 0),t&&(this.cause=t)}},Jt=class extends Mr{constructor({message:e}={}){super({message:e??"Request timed out."})}},ys=class extends _e{},_s=class extends _e{},ws=class extends _e{},xs=class extends _e{},vs=class extends _e{},As=class extends _e{},Os=class extends _e{},Ps=class extends _e{},Es=class extends N{constructor(){super("Could not parse response content as the length limit was reached")}},Is=class extends N{constructor(){super("Could not parse response content as the request was rejected by the content filter")}},Xt=class extends Error{constructor(e){super(e)}};var r_=/^[a-z][a-z0-9+.-]*:/i,md=r=>r_.test(r),Ue=r=>(Ue=Array.isArray,Ue(r)),Bl=Ue;function gd(r){return typeof r!="object"?{}:r??{}}function bd(r){if(!r)return!0;for(let e in r)return!1;return!0}function yd(r,e){return Object.prototype.hasOwnProperty.call(r,e)}function ks(r){return r!=null&&typeof r=="object"&&!Array.isArray(r)}var _d=(r,e)=>{if(typeof e!="number"||!Number.isInteger(e))throw new N(`${r} must be an integer`);if(e<0)throw new N(`${r} must be a positive integer`);return e};var wd=r=>{try{return JSON.parse(r)}catch{return}};var Yt=r=>new Promise(e=>setTimeout(e,r));var Dr="5.12.2";var Od=()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u";function n_(){return typeof Deno<"u"&&Deno.build!=null?"deno":typeof EdgeRuntime<"u"?"edge":Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]"?"node":"unknown"}var s_=()=>{let r=n_();if(r==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Dr,"X-Stainless-OS":vd(Deno.build.os),"X-Stainless-Arch":xd(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version=="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Dr,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(r==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Dr,"X-Stainless-OS":vd(globalThis.process.platform??"unknown"),"X-Stainless-Arch":xd(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let e=i_();return e?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Dr,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${e.browser}`,"X-Stainless-Runtime-Version":e.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Dr,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function i_(){if(typeof navigator>"u"||!navigator)return null;let r=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:e,pattern:t}of r){let n=t.exec(navigator.userAgent);if(n){let s=n[1]||0,i=n[2]||0,o=n[3]||0;return{browser:e,version:`${s}.${i}.${o}`}}}return null}var xd=r=>r==="x32"?"x32":r==="x86_64"||r==="x64"?"x64":r==="arm"?"arm":r==="aarch64"||r==="arm64"?"arm64":r?`other:${r}`:"unknown",vd=r=>(r=r.toLowerCase(),r.includes("ios")?"iOS":r==="android"?"Android":r==="darwin"?"MacOS":r==="win32"?"Windows":r==="freebsd"?"FreeBSD":r==="openbsd"?"OpenBSD":r==="linux"?"Linux":r?`Other:${r}`:"Unknown"),Ad,Pd=()=>Ad??(Ad=s_());function Ed(){if(typeof fetch<"u")return fetch;throw new Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function Kl(...r){let e=globalThis.ReadableStream;if(typeof e>"u")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new e(...r)}function Da(r){let e=Symbol.asyncIterator in r?r[Symbol.asyncIterator]():r[Symbol.iterator]();return Kl({start(){},async pull(t){let{done:n,value:s}=await e.next();n?t.close():t.enqueue(s)},async cancel(){await e.return?.()}})}function Wl(r){if(r[Symbol.asyncIterator])return r;let e=r.getReader();return{async next(){try{let t=await e.read();return t?.done&&e.releaseLock(),t}catch(t){throw e.releaseLock(),t}},async return(){let t=e.cancel();return e.releaseLock(),await t,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function Id(r){if(r===null||typeof r!="object")return;if(r[Symbol.asyncIterator]){await r[Symbol.asyncIterator]().return?.();return}let e=r.getReader(),t=e.cancel();e.releaseLock(),await t}var kd=({headers:r,body:e})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(e)});var $a="RFC3986",Hl=r=>String(r),La={RFC1738:r=>String(r).replace(/%20/g,"+"),RFC3986:Hl},Vl="RFC1738";var Fa=(r,e)=>(Fa=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),Fa(r,e)),Zt=(()=>{let r=[];for(let e=0;e<256;++e)r.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return r})();var Gl=1024,Sd=(r,e,t,n,s)=>{if(r.length===0)return r;let i=r;if(typeof r=="symbol"?i=Symbol.prototype.toString.call(r):typeof r!="string"&&(i=String(r)),t==="iso-8859-1")return escape(i).replace(/%u[0-9a-f]{4}/gi,function(a){return"%26%23"+parseInt(a.slice(2),16)+"%3B"});let o="";for(let a=0;a<i.length;a+=Gl){let u=i.length>=Gl?i.slice(a,a+Gl):i,c=[];for(let l=0;l<u.length;++l){let p=u.charCodeAt(l);if(p===45||p===46||p===95||p===126||p>=48&&p<=57||p>=65&&p<=90||p>=97&&p<=122||s===Vl&&(p===40||p===41)){c[c.length]=u.charAt(l);continue}if(p<128){c[c.length]=Zt[p];continue}if(p<2048){c[c.length]=Zt[192|p>>6]+Zt[128|p&63];continue}if(p<55296||p>=57344){c[c.length]=Zt[224|p>>12]+Zt[128|p>>6&63]+Zt[128|p&63];continue}l+=1,p=65536+((p&1023)<<10|u.charCodeAt(l)&1023),c[c.length]=Zt[240|p>>18]+Zt[128|p>>12&63]+Zt[128|p>>6&63]+Zt[128|p&63]}o+=c.join("")}return o};function Cd(r){return!r||typeof r!="object"?!1:!!(r.constructor&&r.constructor.isBuffer&&r.constructor.isBuffer(r))}function ql(r,e){if(Ue(r)){let t=[];for(let n=0;n<r.length;n+=1)t.push(e(r[n]));return t}return e(r)}var Rd={brackets(r){return String(r)+"[]"},comma:"comma",indices(r,e){return String(r)+"["+e+"]"},repeat(r){return String(r)}},Nd=function(r,e){Array.prototype.push.apply(r,Ue(e)?e:[e])},Td,we={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:Sd,encodeValuesOnly:!1,format:$a,formatter:Hl,indices:!1,serializeDate(r){return(Td??(Td=Function.prototype.call.bind(Date.prototype.toISOString)))(r)},skipNulls:!1,strictNullHandling:!1};function u_(r){return typeof r=="string"||typeof r=="number"||typeof r=="boolean"||typeof r=="symbol"||typeof r=="bigint"}var Jl={};function jd(r,e,t,n,s,i,o,a,u,c,l,p,h,f,g,b,_,P){let v=r,S=P,C=0,j=!1;for(;(S=S.get(Jl))!==void 0&&!j;){let $=S.get(r);if(C+=1,typeof $<"u"){if($===C)throw new RangeError("Cyclic object value");j=!0}typeof S.get(Jl)>"u"&&(C=0)}if(typeof c=="function"?v=c(e,v):v instanceof Date?v=h?.(v):t==="comma"&&Ue(v)&&(v=ql(v,function($){return $ instanceof Date?h?.($):$})),v===null){if(i)return u&&!b?u(e,we.encoder,_,"key",f):e;v=""}if(u_(v)||Cd(v)){if(u){let $=b?e:u(e,we.encoder,_,"key",f);return[g?.($)+"="+g?.(u(v,we.encoder,_,"value",f))]}return[g?.(e)+"="+g?.(String(v))]}let F=[];if(typeof v>"u")return F;let D;if(t==="comma"&&Ue(v))b&&u&&(v=ql(v,u)),D=[{value:v.length>0?v.join(",")||null:void 0}];else if(Ue(c))D=c;else{let $=Object.keys(v);D=l?$.sort(l):$}let y=a?String(e).replace(/\./g,"%2E"):String(e),T=n&&Ue(v)&&v.length===1?y+"[]":y;if(s&&Ue(v)&&v.length===0)return T+"[]";for(let $=0;$<D.length;++$){let E=D[$],J=typeof E=="object"&&typeof E.value<"u"?E.value:v[E];if(o&&J===null)continue;let oe=p&&a?E.replace(/\./g,"%2E"):E,pe=Ue(v)?typeof t=="function"?t(T,oe):T:T+(p?"."+oe:"["+oe+"]");P.set(r,C);let Nt=new WeakMap;Nt.set(Jl,P),Nd(F,jd(J,pe,t,n,s,i,o,a,t==="comma"&&b&&Ue(v)?null:u,c,l,p,h,f,g,b,_,Nt))}return F}function c_(r=we){if(typeof r.allowEmptyArrays<"u"&&typeof r.allowEmptyArrays!="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof r.encodeDotInKeys<"u"&&typeof r.encodeDotInKeys!="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(r.encoder!==null&&typeof r.encoder<"u"&&typeof r.encoder!="function")throw new TypeError("Encoder has to be a function.");let e=r.charset||we.charset;if(typeof r.charset<"u"&&r.charset!=="utf-8"&&r.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let t=$a;if(typeof r.format<"u"){if(!Fa(La,r.format))throw new TypeError("Unknown format option provided.");t=r.format}let n=La[t],s=we.filter;(typeof r.filter=="function"||Ue(r.filter))&&(s=r.filter);let i;if(r.arrayFormat&&r.arrayFormat in Rd?i=r.arrayFormat:"indices"in r?i=r.indices?"indices":"repeat":i=we.arrayFormat,"commaRoundTrip"in r&&typeof r.commaRoundTrip!="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");let o=typeof r.allowDots>"u"?r.encodeDotInKeys?!0:we.allowDots:!!r.allowDots;return{addQueryPrefix:typeof r.addQueryPrefix=="boolean"?r.addQueryPrefix:we.addQueryPrefix,allowDots:o,allowEmptyArrays:typeof r.allowEmptyArrays=="boolean"?!!r.allowEmptyArrays:we.allowEmptyArrays,arrayFormat:i,charset:e,charsetSentinel:typeof r.charsetSentinel=="boolean"?r.charsetSentinel:we.charsetSentinel,commaRoundTrip:!!r.commaRoundTrip,delimiter:typeof r.delimiter>"u"?we.delimiter:r.delimiter,encode:typeof r.encode=="boolean"?r.encode:we.encode,encodeDotInKeys:typeof r.encodeDotInKeys=="boolean"?r.encodeDotInKeys:we.encodeDotInKeys,encoder:typeof r.encoder=="function"?r.encoder:we.encoder,encodeValuesOnly:typeof r.encodeValuesOnly=="boolean"?r.encodeValuesOnly:we.encodeValuesOnly,filter:s,format:t,formatter:n,serializeDate:typeof r.serializeDate=="function"?r.serializeDate:we.serializeDate,skipNulls:typeof r.skipNulls=="boolean"?r.skipNulls:we.skipNulls,sort:typeof r.sort=="function"?r.sort:null,strictNullHandling:typeof r.strictNullHandling=="boolean"?r.strictNullHandling:we.strictNullHandling}}function Xl(r,e={}){let t=r,n=c_(e),s,i;typeof n.filter=="function"?(i=n.filter,t=i("",t)):Ue(n.filter)&&(i=n.filter,s=i);let o=[];if(typeof t!="object"||t===null)return"";let a=Rd[n.arrayFormat],u=a==="comma"&&n.commaRoundTrip;s||(s=Object.keys(t)),n.sort&&s.sort(n.sort);let c=new WeakMap;for(let h=0;h<s.length;++h){let f=s[h];n.skipNulls&&t[f]===null||Nd(o,jd(t[f],f,a,u,n.allowEmptyArrays,n.strictNullHandling,n.skipNulls,n.encodeDotInKeys,n.encode?n.encoder:null,n.filter,n.sort,n.allowDots,n.serializeDate,n.format,n.formatter,n.encodeValuesOnly,n.charset,c))}let l=o.join(n.delimiter),p=n.addQueryPrefix===!0?"?":"";return n.charsetSentinel&&(n.charset==="iso-8859-1"?p+="utf8=%26%2310003%3B&":p+="utf8=%E2%9C%93&"),l.length>0?p+l:""}function $d(r){let e=0;for(let s of r)e+=s.length;let t=new Uint8Array(e),n=0;for(let s of r)t.set(s,n),n+=s.length;return t}var Md;function Ss(r){let e;return(Md??(e=new globalThis.TextEncoder,Md=e.encode.bind(e)))(r)}var Dd;function Yl(r){let e;return(Dd??(e=new globalThis.TextDecoder,Dd=e.decode.bind(e)))(r)}var tt,rt,yn=class{constructor(){tt.set(this,void 0),rt.set(this,void 0),L(this,tt,new Uint8Array,"f"),L(this,rt,null,"f")}decode(e){if(e==null)return[];let t=e instanceof ArrayBuffer?new Uint8Array(e):typeof e=="string"?Ss(e):e;L(this,tt,$d([x(this,tt,"f"),t]),"f");let n=[],s;for(;(s=p_(x(this,tt,"f"),x(this,rt,"f")))!=null;){if(s.carriage&&x(this,rt,"f")==null){L(this,rt,s.index,"f");continue}if(x(this,rt,"f")!=null&&(s.index!==x(this,rt,"f")+1||s.carriage)){n.push(Yl(x(this,tt,"f").subarray(0,x(this,rt,"f")-1))),L(this,tt,x(this,tt,"f").subarray(x(this,rt,"f")),"f"),L(this,rt,null,"f");continue}let i=x(this,rt,"f")!==null?s.preceding-1:s.preceding,o=Yl(x(this,tt,"f").subarray(0,i));n.push(o),L(this,tt,x(this,tt,"f").subarray(s.index),"f"),L(this,rt,null,"f")}return n}flush(){return x(this,tt,"f").length?this.decode(`
96
+ `):[]}};tt=new WeakMap,rt=new WeakMap;yn.NEWLINE_CHARS=new Set([`
97
+ `,"\r"]);yn.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function p_(r,e){for(let s=e??0;s<r.length;s++){if(r[s]===10)return{preceding:s,index:s+1,carriage:!1};if(r[s]===13)return{preceding:s,index:s+1,carriage:!0}}return null}function Ld(r){for(let n=0;n<r.length-1;n++){if(r[n]===10&&r[n+1]===10||r[n]===13&&r[n+1]===13)return n+2;if(r[n]===13&&r[n+1]===10&&n+3<r.length&&r[n+2]===13&&r[n+3]===10)return n+4}return-1}var za={off:0,error:200,warn:300,info:400,debug:500},Zl=(r,e,t)=>{if(r){if(yd(za,r))return r;me(t).warn(`${e} was set to ${JSON.stringify(r)}, expected one of ${JSON.stringify(Object.keys(za))}`)}};function Wi(){}function Ua(r,e,t){return!e||za[r]>za[t]?Wi:e[r].bind(e)}var f_={error:Wi,warn:Wi,info:Wi,debug:Wi},Fd=new WeakMap;function me(r){let e=r.logger,t=r.logLevel??"off";if(!e)return f_;let n=Fd.get(e);if(n&&n[0]===t)return n[1];let s={error:Ua("error",e,t),warn:Ua("warn",e,t),info:Ua("info",e,t),debug:Ua("debug",e,t)};return Fd.set(e,[t,s]),s}var mr=r=>(r.options&&(r.options={...r.options},delete r.options.headers),r.headers&&(r.headers=Object.fromEntries((r.headers instanceof Headers?[...r.headers]:Object.entries(r.headers)).map(([e,t])=>[e,e.toLowerCase()==="authorization"||e.toLowerCase()==="cookie"||e.toLowerCase()==="set-cookie"?"***":t]))),"retryOfRequestLogID"in r&&(r.retryOfRequestLogID&&(r.retryOf=r.retryOfRequestLogID),delete r.retryOfRequestLogID),r);var Hi,Qt=class r{constructor(e,t,n){this.iterator=e,Hi.set(this,void 0),this.controller=t,L(this,Hi,n,"f")}static fromSSEResponse(e,t,n){let s=!1,i=n?me(n):console;async function*o(){if(s)throw new N("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let a=!1;try{for await(let u of h_(e,t))if(!a){if(u.data.startsWith("[DONE]")){a=!0;continue}if(u.event===null||!u.event.startsWith("thread.")){let c;try{c=JSON.parse(u.data)}catch(l){throw i.error("Could not parse message into JSON:",u.data),i.error("From chunk:",u.raw),l}if(c&&c.error)throw new _e(void 0,c.error,void 0,e.headers);yield c}else{let c;try{c=JSON.parse(u.data)}catch(l){throw console.error("Could not parse message into JSON:",u.data),console.error("From chunk:",u.raw),l}if(u.event=="error")throw new _e(void 0,c.error,c.message,void 0);yield{event:u.event,data:c}}}a=!0}catch(u){if(Bi(u))return;throw u}finally{a||t.abort()}}return new r(o,t,n)}static fromReadableStream(e,t,n){let s=!1;async function*i(){let a=new yn,u=Wl(e);for await(let c of u)for(let l of a.decode(c))yield l;for(let c of a.flush())yield c}async function*o(){if(s)throw new N("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let a=!1;try{for await(let u of i())a||u&&(yield JSON.parse(u));a=!0}catch(u){if(Bi(u))return;throw u}finally{a||t.abort()}}return new r(o,t,n)}[(Hi=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let e=[],t=[],n=this.iterator(),s=i=>({next:()=>{if(i.length===0){let o=n.next();e.push(o),t.push(o)}return i.shift()}});return[new r(()=>s(e),this.controller,x(this,Hi,"f")),new r(()=>s(t),this.controller,x(this,Hi,"f"))]}toReadableStream(){let e=this,t;return Kl({async start(){t=e[Symbol.asyncIterator]()},async pull(n){try{let{value:s,done:i}=await t.next();if(i)return n.close();let o=Ss(JSON.stringify(s)+`
98
+ `);n.enqueue(o)}catch(s){n.error(s)}},async cancel(){await t.return?.()}})}};async function*h_(r,e){if(!r.body)throw e.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative"?new N("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api"):new N("Attempted to iterate over a response with no body");let t=new Ql,n=new yn,s=Wl(r.body);for await(let i of d_(s))for(let o of n.decode(i)){let a=t.decode(o);a&&(yield a)}for(let i of n.flush()){let o=t.decode(i);o&&(yield o)}}async function*d_(r){let e=new Uint8Array;for await(let t of r){if(t==null)continue;let n=t instanceof ArrayBuffer?new Uint8Array(t):typeof t=="string"?Ss(t):t,s=new Uint8Array(e.length+n.length);s.set(e),s.set(n,e.length),e=s;let i;for(;(i=Ld(e))!==-1;)yield e.slice(0,i),e=e.slice(i)}e.length>0&&(yield e)}var Ql=class{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){if(e.endsWith("\r")&&(e=e.substring(0,e.length-1)),!e){if(!this.event&&!this.data.length)return null;let i={event:this.event,data:this.data.join(`
99
+ `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],i}if(this.chunks.push(e),e.startsWith(":"))return null;let[t,n,s]=m_(e,":");return s.startsWith(" ")&&(s=s.substring(1)),t==="event"?this.event=s:t==="data"&&this.data.push(s),null}};function m_(r,e){let t=r.indexOf(e);return t!==-1?[r.substring(0,t),e,r.substring(t+e.length)]:[r,"",""]}async function Ba(r,e){let{response:t,requestLogID:n,retryOfRequestLogID:s,startTime:i}=e,o=await(async()=>{if(e.options.stream)return me(r).debug("response",t.status,t.url,t.headers,t.body),e.options.__streamClass?e.options.__streamClass.fromSSEResponse(t,e.controller,r):Qt.fromSSEResponse(t,e.controller,r);if(t.status===204)return null;if(e.options.__binaryResponse)return t;let u=t.headers.get("content-type")?.split(";")[0]?.trim();if(u?.includes("application/json")||u?.endsWith("+json")){let p=await t.json();return ep(p,t)}return await t.text()})();return me(r).debug(`[${n}] response parsed`,mr({retryOfRequestLogID:s,url:t.url,status:t.status,body:o,durationMs:Date.now()-i})),o}function ep(r,e){return!r||typeof r!="object"||Array.isArray(r)?r:Object.defineProperty(r,"_request_id",{value:e.headers.get("x-request-id"),enumerable:!1})}var Vi,_n=class r extends Promise{constructor(e,t,n=Ba){super(s=>{s(null)}),this.responsePromise=t,this.parseResponse=n,Vi.set(this,void 0),L(this,Vi,e,"f")}_thenUnwrap(e){return new r(x(this,Vi,"f"),this.responsePromise,async(t,n)=>ep(e(await this.parseResponse(t,n),n),n.response))}asResponse(){return this.responsePromise.then(e=>e.response)}async withResponse(){let[e,t]=await Promise.all([this.parse(),this.asResponse()]);return{data:e,response:t,request_id:t.headers.get("x-request-id")}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(e=>this.parseResponse(x(this,Vi,"f"),e))),this.parsedPromise}then(e,t){return this.parse().then(e,t)}catch(e){return this.parse().catch(e)}finally(e){return this.parse().finally(e)}};Vi=new WeakMap;var Ka,Wa=class{constructor(e,t,n,s){Ka.set(this,void 0),L(this,Ka,e,"f"),this.options=s,this.response=t,this.body=n}hasNextPage(){return this.getPaginatedItems().length?this.nextPageRequestOptions()!=null:!1}async getNextPage(){let e=this.nextPageRequestOptions();if(!e)throw new N("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await x(this,Ka,"f").requestAPIList(this.constructor,e)}async*iterPages(){let e=this;for(yield e;e.hasNextPage();)e=await e.getNextPage(),yield e}async*[(Ka=new WeakMap,Symbol.asyncIterator)](){for await(let e of this.iterPages())for(let t of e.getPaginatedItems())yield t}},Gi=class extends _n{constructor(e,t,n){super(e,t,async(s,i)=>new n(s,i.response,await Ba(s,i),i.options))}async*[Symbol.asyncIterator](){let e=await this;for await(let t of e)yield t}},er=class extends Wa{constructor(e,t,n,s){super(e,t,n,s),this.data=n.data||[],this.object=n.object}getPaginatedItems(){return this.data??[]}nextPageRequestOptions(){return null}},W=class extends Wa{constructor(e,t,n,s){super(e,t,n,s),this.data=n.data||[],this.has_more=n.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageRequestOptions(){let e=this.getPaginatedItems(),t=e[e.length-1]?.id;return t?{...this.options,query:{...gd(this.options.query),after:t}}:null}};var rp=()=>{if(typeof File>"u"){let{process:r}=globalThis,e=typeof r?.versions?.node=="string"&&parseInt(r.versions.node.split("."))<20;throw new Error("`File` is not defined as a global, which is required for file uploads."+(e?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function Cs(r,e,t){return rp(),new File(r,e??"unknown_file",t)}function qi(r){return(typeof r=="object"&&r!==null&&("name"in r&&r.name&&String(r.name)||"url"in r&&r.url&&String(r.url)||"filename"in r&&r.filename&&String(r.filename)||"path"in r&&r.path&&String(r.path))||"").split(/[\\/]/).pop()||void 0}var np=r=>r!=null&&typeof r=="object"&&typeof r[Symbol.asyncIterator]=="function";var nt=async(r,e)=>({...r,body:await y_(r.body,e)}),Ud=new WeakMap;function b_(r){let e=typeof r=="function"?r:r.fetch,t=Ud.get(e);if(t)return t;let n=(async()=>{try{let s="Response"in e?e.Response:(await e("data:,")).constructor,i=new FormData;return i.toString()!==await new s(i).text()}catch{return!0}})();return Ud.set(e,n),n}var y_=async(r,e)=>{if(!await b_(e))throw new TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let t=new FormData;return await Promise.all(Object.entries(r||{}).map(([n,s])=>tp(t,n,s))),t},__=r=>r instanceof Blob&&"name"in r;var tp=async(r,e,t)=>{if(t!==void 0){if(t==null)throw new TypeError(`Received null for "${e}"; to pass null in FormData, you must use the string 'null'`);if(typeof t=="string"||typeof t=="number"||typeof t=="boolean")r.append(e,String(t));else if(t instanceof Response)r.append(e,Cs([await t.blob()],qi(t)));else if(np(t))r.append(e,Cs([await new Response(Da(t)).blob()],qi(t)));else if(__(t))r.append(e,t,qi(t));else if(Array.isArray(t))await Promise.all(t.map(n=>tp(r,e+"[]",n)));else if(typeof t=="object")await Promise.all(Object.entries(t).map(([n,s])=>tp(r,`${e}[${n}]`,s)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${t} instead`)}};var zd=r=>r!=null&&typeof r=="object"&&typeof r.size=="number"&&typeof r.type=="string"&&typeof r.text=="function"&&typeof r.slice=="function"&&typeof r.arrayBuffer=="function",w_=r=>r!=null&&typeof r=="object"&&typeof r.name=="string"&&typeof r.lastModified=="number"&&zd(r),x_=r=>r!=null&&typeof r=="object"&&typeof r.url=="string"&&typeof r.blob=="function";async function Ji(r,e,t){if(rp(),r=await r,w_(r))return r instanceof File?r:Cs([await r.arrayBuffer()],r.name);if(x_(r)){let s=await r.blob();return e||(e=new URL(r.url).pathname.split(/[\\/]/).pop()),Cs(await sp(s),e,t)}let n=await sp(r);if(e||(e=qi(r)),!t?.type){let s=n.find(i=>typeof i=="object"&&"type"in i&&i.type);typeof s=="string"&&(t={...t,type:s})}return Cs(n,e,t)}async function sp(r){let e=[];if(typeof r=="string"||ArrayBuffer.isView(r)||r instanceof ArrayBuffer)e.push(r);else if(zd(r))e.push(r instanceof Blob?r:await r.arrayBuffer());else if(np(r))for await(let t of r)e.push(...await sp(t));else{let t=r?.constructor?.name;throw new Error(`Unexpected data type: ${typeof r}${t?`; constructor: ${t}`:""}${v_(r)}`)}return e}function v_(r){return typeof r!="object"||r===null?"":`; props: [${Object.getOwnPropertyNames(r).map(t=>`"${t}"`).join(", ")}]`}var I=class{constructor(e){this._client=e}};function Kd(r){return r.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var Bd=Object.freeze(Object.create(null)),O_=(r=Kd)=>function(t,...n){if(t.length===1)return t[0];let s=!1,i=[],o=t.reduce((l,p,h)=>{/[?#]/.test(p)&&(s=!0);let f=n[h],g=(s?encodeURIComponent:r)(""+f);return h!==n.length&&(f==null||typeof f=="object"&&f.toString===Object.getPrototypeOf(Object.getPrototypeOf(f.hasOwnProperty??Bd)??Bd)?.toString)&&(g=f+"",i.push({start:l.length+p.length,length:g.length,error:`Value of type ${Object.prototype.toString.call(f).slice(8,-1)} is not a valid path parameter`})),l+p+(h===n.length?"":g)},""),a=o.split(/[?#]/,1)[0],u=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,c;for(;(c=u.exec(a))!==null;)i.push({start:c.index,length:c[0].length,error:`Value "${c[0]}" can't be safely passed as a path parameter`});if(i.sort((l,p)=>l.start-p.start),i.length>0){let l=0,p=i.reduce((h,f)=>{let g=" ".repeat(f.start-l),b="^".repeat(f.length);return l=f.start+f.length,h+g+b},"");throw new N(`Path parameters result in path with invalid segments:
102
100
  ${i.map(h=>h.error).join(`
103
101
  `)}
104
102
  ${o}
105
- ${p}`)}return o},O=y_(Fd);var yn=class extends E{list(e,t={},n){return this._client.getAPIList(O`/chat/completions/${e}/messages`,W,{query:t,...n})}};function Xi(r){return r!==void 0&&"function"in r&&r.function!==void 0}function Ud(r,e){let t={...r};return Object.defineProperties(t,{$brand:{value:"auto-parseable-response-format",enumerable:!1},$parseRaw:{value:e,enumerable:!1}}),t}function Yi(r){return r?.$brand==="auto-parseable-response-format"}function _n(r){return r?.$brand==="auto-parseable-tool"}function zd(r,e){return!e||!rp(e)?{...r,choices:r.choices.map(t=>(Kd(t.message.tool_calls),{...t,message:{...t.message,parsed:null,...t.message.tool_calls?{tool_calls:t.message.tool_calls}:void 0}}))}:Zi(r,e)}function Zi(r,e){let t=r.choices.map(n=>{if(n.finish_reason==="length")throw new Ps;if(n.finish_reason==="content_filter")throw new Es;return Kd(n.message.tool_calls),{...n,message:{...n.message,...n.message.tool_calls?{tool_calls:n.message.tool_calls?.map(s=>v_(e,s))??void 0}:void 0,parsed:n.message.content&&!n.message.refusal?x_(e,n.message.content):null}}});return{...r,choices:t}}function x_(r,e){return r.response_format?.type!=="json_schema"?null:r.response_format?.type==="json_schema"?"$parseRaw"in r.response_format?r.response_format.$parseRaw(e):JSON.parse(e):null}function v_(r,e){let t=r.tools?.find(n=>Xi(n)&&n.function?.name===e.function.name);return{...e,function:{...e.function,parsed_arguments:_n(t)?t.$parseRaw(e.function.arguments):t?.function.strict?JSON.parse(e.function.arguments):null}}}function Bd(r,e){if(!r||!("tools"in r)||!r.tools)return!1;let t=r.tools?.find(n=>Xi(n)&&n.function?.name===e.function.name);return Xi(t)&&(_n(t)||t?.function.strict||!1)}function rp(r){return Yi(r.response_format)?!0:r.tools?.some(e=>_n(e)||e.type==="function"&&e.function.strict===!0)??!1}function Kd(r){for(let e of r||[])if(e.type!=="function")throw new N(`Currently only \`function\` tool calls are supported; Received \`${e.type}\``)}function Wd(r){for(let e of r??[]){if(e.type!=="function")throw new N(`Currently only \`function\` tool types support auto-parsing; Received \`${e.type}\``);if(e.function.strict!==!0)throw new N(`The \`${e.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var Cs=r=>r?.role==="assistant",np=r=>r?.role==="tool";var sp,Ka,Wa,Qi,eo,Ha,to,mr,ro,Va,Ga,Ts,Hd,Mr=class{constructor(){sp.add(this),this.controller=new AbortController,Ka.set(this,void 0),Wa.set(this,()=>{}),Qi.set(this,()=>{}),eo.set(this,void 0),Ha.set(this,()=>{}),to.set(this,()=>{}),mr.set(this,{}),ro.set(this,!1),Va.set(this,!1),Ga.set(this,!1),Ts.set(this,!1),L(this,Ka,new Promise((e,t)=>{L(this,Wa,e,"f"),L(this,Qi,t,"f")}),"f"),L(this,eo,new Promise((e,t)=>{L(this,Ha,e,"f"),L(this,to,t,"f")}),"f"),x(this,Ka,"f").catch(()=>{}),x(this,eo,"f").catch(()=>{})}_run(e){setTimeout(()=>{e().then(()=>{this._emitFinal(),this._emit("end")},x(this,sp,"m",Hd).bind(this))},0)}_connected(){this.ended||(x(this,Wa,"f").call(this),this._emit("connect"))}get ended(){return x(this,ro,"f")}get errored(){return x(this,Va,"f")}get aborted(){return x(this,Ga,"f")}abort(){this.controller.abort()}on(e,t){return(x(this,mr,"f")[e]||(x(this,mr,"f")[e]=[])).push({listener:t}),this}off(e,t){let n=x(this,mr,"f")[e];if(!n)return this;let s=n.findIndex(i=>i.listener===t);return s>=0&&n.splice(s,1),this}once(e,t){return(x(this,mr,"f")[e]||(x(this,mr,"f")[e]=[])).push({listener:t,once:!0}),this}emitted(e){return new Promise((t,n)=>{L(this,Ts,!0,"f"),e!=="error"&&this.once("error",n),this.once(e,t)})}async done(){L(this,Ts,!0,"f"),await x(this,eo,"f")}_emit(e,...t){if(x(this,ro,"f"))return;e==="end"&&(L(this,ro,!0,"f"),x(this,Ha,"f").call(this));let n=x(this,mr,"f")[e];if(n&&(x(this,mr,"f")[e]=n.filter(s=>!s.once),n.forEach(({listener:s})=>s(...t))),e==="abort"){let s=t[0];!x(this,Ts,"f")&&!n?.length&&Promise.reject(s),x(this,Qi,"f").call(this,s),x(this,to,"f").call(this,s),this._emit("end");return}if(e==="error"){let s=t[0];!x(this,Ts,"f")&&!n?.length&&Promise.reject(s),x(this,Qi,"f").call(this,s),x(this,to,"f").call(this,s),this._emit("end")}}_emitFinal(){}};Ka=new WeakMap,Wa=new WeakMap,Qi=new WeakMap,eo=new WeakMap,Ha=new WeakMap,to=new WeakMap,mr=new WeakMap,ro=new WeakMap,Va=new WeakMap,Ga=new WeakMap,Ts=new WeakMap,sp=new WeakSet,Hd=function(e){if(L(this,Va,!0,"f"),e instanceof Error&&e.name==="AbortError"&&(e=new fe),e instanceof fe)return L(this,Ga,!0,"f"),this._emit("abort",e);if(e instanceof N)return this._emit("error",e);if(e instanceof Error){let t=new N(e.message);return t.cause=e,this._emit("error",t)}return this._emit("error",new N(String(e)))};function Vd(r){return typeof r.parse=="function"}var He,ip,qa,op,ap,up,Gd,qd,A_=10,Rs=class extends Mr{constructor(){super(...arguments),He.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(e){this._chatCompletions.push(e),this._emit("chatCompletion",e);let t=e.choices[0]?.message;return t&&this._addMessage(t),e}_addMessage(e,t=!0){if("content"in e||(e.content=null),this.messages.push(e),t){if(this._emit("message",e),np(e)&&e.content)this._emit("functionToolCallResult",e.content);else if(Cs(e)&&e.tool_calls)for(let n of e.tool_calls)n.type==="function"&&this._emit("functionToolCall",n.function)}}async finalChatCompletion(){await this.done();let e=this._chatCompletions[this._chatCompletions.length-1];if(!e)throw new N("stream ended without producing a ChatCompletion");return e}async finalContent(){return await this.done(),x(this,He,"m",ip).call(this)}async finalMessage(){return await this.done(),x(this,He,"m",qa).call(this)}async finalFunctionToolCall(){return await this.done(),x(this,He,"m",op).call(this)}async finalFunctionToolCallResult(){return await this.done(),x(this,He,"m",ap).call(this)}async totalUsage(){return await this.done(),x(this,He,"m",up).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let e=this._chatCompletions[this._chatCompletions.length-1];e&&this._emit("finalChatCompletion",e);let t=x(this,He,"m",qa).call(this);t&&this._emit("finalMessage",t);let n=x(this,He,"m",ip).call(this);n&&this._emit("finalContent",n);let s=x(this,He,"m",op).call(this);s&&this._emit("finalFunctionToolCall",s);let i=x(this,He,"m",ap).call(this);i!=null&&this._emit("finalFunctionToolCallResult",i),this._chatCompletions.some(o=>o.usage)&&this._emit("totalUsage",x(this,He,"m",up).call(this))}async _createChatCompletion(e,t,n){let s=n?.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),x(this,He,"m",Gd).call(this,t);let i=await e.chat.completions.create({...t,stream:!1},{...n,signal:this.controller.signal});return this._connected(),this._addChatCompletion(Zi(i,t))}async _runChatCompletion(e,t,n){for(let s of t.messages)this._addMessage(s,!1);return await this._createChatCompletion(e,t,n)}async _runTools(e,t,n){let s="tool",{tool_choice:i="auto",stream:o,...a}=t,u=typeof i!="string"&&i.type==="function"&&i?.function?.name,{maxChatCompletions:c=A_}=n||{},l=t.tools.map(f=>{if(_n(f)){if(!f.$callback)throw new N("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:f.$callback,name:f.function.name,description:f.function.description||"",parameters:f.function.parameters,parse:f.$parseRaw,strict:!0}}}return f}),p={};for(let f of l)f.type==="function"&&(p[f.function.name||f.function.function.name]=f.function);let h="tools"in t?l.map(f=>f.type==="function"?{type:"function",function:{name:f.function.name||f.function.function.name,parameters:f.function.parameters,description:f.function.description,strict:f.function.strict}}:f):void 0;for(let f of t.messages)this._addMessage(f,!1);for(let f=0;f<c;++f){let b=(await this._createChatCompletion(e,{...a,tool_choice:i,tools:h,messages:[...this.messages]},n)).choices[0]?.message;if(!b)throw new N("missing message in ChatCompletion response");if(!b.tool_calls?.length)return;for(let _ of b.tool_calls){if(_.type!=="function")continue;let I=_.id,{name:v,arguments:S}=_.function,C=p[v];if(C){if(u&&u!==v){let y=`Invalid tool_call: ${JSON.stringify(v)}. ${JSON.stringify(u)} requested. Please try again`;this._addMessage({role:s,tool_call_id:I,content:y});continue}}else{let y=`Invalid tool_call: ${JSON.stringify(v)}. Available options are: ${Object.keys(p).map(T=>JSON.stringify(T)).join(", ")}. Please try again`;this._addMessage({role:s,tool_call_id:I,content:y});continue}let j;try{j=Vd(C)?await C.parse(S):S}catch(y){let T=y instanceof Error?y.message:String(y);this._addMessage({role:s,tool_call_id:I,content:T});continue}let F=await C.function(j,this),D=x(this,He,"m",qd).call(this,F);if(this._addMessage({role:s,tool_call_id:I,content:D}),u)return}}}};He=new WeakSet,ip=function(){return x(this,He,"m",qa).call(this).content??null},qa=function(){let e=this.messages.length;for(;e-- >0;){let t=this.messages[e];if(Cs(t))return{...t,content:t.content??null,refusal:t.refusal??null}}throw new N("stream ended without producing a ChatCompletionMessage with role=assistant")},op=function(){for(let e=this.messages.length-1;e>=0;e--){let t=this.messages[e];if(Cs(t)&&t?.tool_calls?.length)return t.tool_calls.filter(n=>n.type==="function").at(-1)?.function}},ap=function(){for(let e=this.messages.length-1;e>=0;e--){let t=this.messages[e];if(np(t)&&t.content!=null&&typeof t.content=="string"&&this.messages.some(n=>n.role==="assistant"&&n.tool_calls?.some(s=>s.type==="function"&&s.id===t.tool_call_id)))return t.content}},up=function(){let e={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(let{usage:t}of this._chatCompletions)t&&(e.completion_tokens+=t.completion_tokens,e.prompt_tokens+=t.prompt_tokens,e.total_tokens+=t.total_tokens);return e},Gd=function(e){if(e.n!=null&&e.n>1)throw new N("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},qd=function(e){return typeof e=="string"?e:e===void 0?"undefined":JSON.stringify(e)};var no=class r extends Rs{static runTools(e,t,n){let s=new r,i={...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"runTools"}};return s._run(()=>s._runTools(e,t,i)),s}_addMessage(e,t=!0){super._addMessage(e,t),Cs(e)&&e.content&&this._emit("content",e.content)}};var ke={STR:1,NUM:2,ARR:4,OBJ:8,NULL:16,BOOL:32,NAN:64,INFINITY:128,MINUS_INFINITY:256,INF:384,SPECIAL:496,ATOM:499,COLLECTION:12,ALL:511},cp=class extends Error{},lp=class extends Error{};function O_(r,e=ke.ALL){if(typeof r!="string")throw new TypeError(`expecting str, got ${typeof r}`);if(!r.trim())throw new Error(`${r} is empty`);return P_(r.trim(),e)}var P_=(r,e)=>{let t=r.length,n=0,s=h=>{throw new cp(`${h} at position ${n}`)},i=h=>{throw new lp(`${h} at position ${n}`)},o=()=>(p(),n>=t&&s("Unexpected end of input"),r[n]==='"'?a():r[n]==="{"?u():r[n]==="["?c():r.substring(n,n+4)==="null"||ke.NULL&e&&t-n<4&&"null".startsWith(r.substring(n))?(n+=4,null):r.substring(n,n+4)==="true"||ke.BOOL&e&&t-n<4&&"true".startsWith(r.substring(n))?(n+=4,!0):r.substring(n,n+5)==="false"||ke.BOOL&e&&t-n<5&&"false".startsWith(r.substring(n))?(n+=5,!1):r.substring(n,n+8)==="Infinity"||ke.INFINITY&e&&t-n<8&&"Infinity".startsWith(r.substring(n))?(n+=8,1/0):r.substring(n,n+9)==="-Infinity"||ke.MINUS_INFINITY&e&&1<t-n&&t-n<9&&"-Infinity".startsWith(r.substring(n))?(n+=9,-1/0):r.substring(n,n+3)==="NaN"||ke.NAN&e&&t-n<3&&"NaN".startsWith(r.substring(n))?(n+=3,NaN):l()),a=()=>{let h=n,f=!1;for(n++;n<t&&(r[n]!=='"'||f&&r[n-1]==="\\");)f=r[n]==="\\"?!f:!1,n++;if(r.charAt(n)=='"')try{return JSON.parse(r.substring(h,++n-Number(f)))}catch(g){i(String(g))}else if(ke.STR&e)try{return JSON.parse(r.substring(h,n-Number(f))+'"')}catch{return JSON.parse(r.substring(h,r.lastIndexOf("\\"))+'"')}s("Unterminated string literal")},u=()=>{n++,p();let h={};try{for(;r[n]!=="}";){if(p(),n>=t&&ke.OBJ&e)return h;let f=a();p(),n++;try{let g=o();Object.defineProperty(h,f,{value:g,writable:!0,enumerable:!0,configurable:!0})}catch(g){if(ke.OBJ&e)return h;throw g}p(),r[n]===","&&n++}}catch{if(ke.OBJ&e)return h;s("Expected '}' at end of object")}return n++,h},c=()=>{n++;let h=[];try{for(;r[n]!=="]";)h.push(o()),p(),r[n]===","&&n++}catch{if(ke.ARR&e)return h;s("Expected ']' at end of array")}return n++,h},l=()=>{if(n===0){r==="-"&&ke.NUM&e&&s("Not sure what '-' is");try{return JSON.parse(r)}catch(f){if(ke.NUM&e)try{return r[r.length-1]==="."?JSON.parse(r.substring(0,r.lastIndexOf("."))):JSON.parse(r.substring(0,r.lastIndexOf("e")))}catch{}i(String(f))}}let h=n;for(r[n]==="-"&&n++;r[n]&&!",]}".includes(r[n]);)n++;n==t&&!(ke.NUM&e)&&s("Unterminated number literal");try{return JSON.parse(r.substring(h,n))}catch{r.substring(h,n)==="-"&&ke.NUM&e&&s("Not sure what '-' is");try{return JSON.parse(r.substring(h,r.lastIndexOf("e")))}catch(g){i(String(g))}}},p=()=>{for(;n<t&&`
106
- \r `.includes(r[n]);)n++};return o()},pp=r=>O_(r,ke.ALL^ke.NUM);var xe,gr,Ns,Dr,fp,Ja,hp,dp,mp,Xa,gp,Jd,wn=class r extends Rs{constructor(e){super(),xe.add(this),gr.set(this,void 0),Ns.set(this,void 0),Dr.set(this,void 0),L(this,gr,e,"f"),L(this,Ns,[],"f")}get currentChatCompletionSnapshot(){return x(this,Dr,"f")}static fromReadableStream(e){let t=new r(null);return t._run(()=>t._fromReadableStream(e)),t}static createChatCompletion(e,t,n){let s=new r(t);return s._run(()=>s._runChatCompletion(e,{...t,stream:!0},{...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"stream"}})),s}async _createChatCompletion(e,t,n){super._createChatCompletion;let s=n?.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),x(this,xe,"m",fp).call(this);let i=await e.chat.completions.create({...t,stream:!0},{...n,signal:this.controller.signal});this._connected();for await(let o of i)x(this,xe,"m",hp).call(this,o);if(i.controller.signal?.aborted)throw new fe;return this._addChatCompletion(x(this,xe,"m",Xa).call(this))}async _fromReadableStream(e,t){let n=t?.signal;n&&(n.aborted&&this.controller.abort(),n.addEventListener("abort",()=>this.controller.abort())),x(this,xe,"m",fp).call(this),this._connected();let s=Qt.fromReadableStream(e,this.controller),i;for await(let o of s)i&&i!==o.id&&this._addChatCompletion(x(this,xe,"m",Xa).call(this)),x(this,xe,"m",hp).call(this,o),i=o.id;if(s.controller.signal?.aborted)throw new fe;return this._addChatCompletion(x(this,xe,"m",Xa).call(this))}[(gr=new WeakMap,Ns=new WeakMap,Dr=new WeakMap,xe=new WeakSet,fp=function(){this.ended||L(this,Dr,void 0,"f")},Ja=function(t){let n=x(this,Ns,"f")[t.index];return n||(n={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},x(this,Ns,"f")[t.index]=n,n)},hp=function(t){if(this.ended)return;let n=x(this,xe,"m",Jd).call(this,t);this._emit("chunk",t,n);for(let s of t.choices){let i=n.choices[s.index];s.delta.content!=null&&i.message?.role==="assistant"&&i.message?.content&&(this._emit("content",s.delta.content,i.message.content),this._emit("content.delta",{delta:s.delta.content,snapshot:i.message.content,parsed:i.message.parsed})),s.delta.refusal!=null&&i.message?.role==="assistant"&&i.message?.refusal&&this._emit("refusal.delta",{delta:s.delta.refusal,snapshot:i.message.refusal}),s.logprobs?.content!=null&&i.message?.role==="assistant"&&this._emit("logprobs.content.delta",{content:s.logprobs?.content,snapshot:i.logprobs?.content??[]}),s.logprobs?.refusal!=null&&i.message?.role==="assistant"&&this._emit("logprobs.refusal.delta",{refusal:s.logprobs?.refusal,snapshot:i.logprobs?.refusal??[]});let o=x(this,xe,"m",Ja).call(this,i);i.finish_reason&&(x(this,xe,"m",mp).call(this,i),o.current_tool_call_index!=null&&x(this,xe,"m",dp).call(this,i,o.current_tool_call_index));for(let a of s.delta.tool_calls??[])o.current_tool_call_index!==a.index&&(x(this,xe,"m",mp).call(this,i),o.current_tool_call_index!=null&&x(this,xe,"m",dp).call(this,i,o.current_tool_call_index)),o.current_tool_call_index=a.index;for(let a of s.delta.tool_calls??[]){let u=i.message.tool_calls?.[a.index];u?.type&&(u?.type==="function"?this._emit("tool_calls.function.arguments.delta",{name:u.function?.name,index:a.index,arguments:u.function.arguments,parsed_arguments:u.function.parsed_arguments,arguments_delta:a.function?.arguments??""}):(u?.type,void 0))}}},dp=function(t,n){if(x(this,xe,"m",Ja).call(this,t).done_tool_calls.has(n))return;let i=t.message.tool_calls?.[n];if(!i)throw new Error("no tool call snapshot");if(!i.type)throw new Error("tool call snapshot missing `type`");if(i.type==="function"){let o=x(this,gr,"f")?.tools?.find(a=>Xi(a)&&a.function.name===i.function.name);this._emit("tool_calls.function.arguments.done",{name:i.function.name,index:n,arguments:i.function.arguments,parsed_arguments:_n(o)?o.$parseRaw(i.function.arguments):o?.function.strict?JSON.parse(i.function.arguments):null})}else i.type},mp=function(t){let n=x(this,xe,"m",Ja).call(this,t);if(t.message.content&&!n.content_done){n.content_done=!0;let s=x(this,xe,"m",gp).call(this);this._emit("content.done",{content:t.message.content,parsed:s?s.$parseRaw(t.message.content):null})}t.message.refusal&&!n.refusal_done&&(n.refusal_done=!0,this._emit("refusal.done",{refusal:t.message.refusal})),t.logprobs?.content&&!n.logprobs_content_done&&(n.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:t.logprobs.content})),t.logprobs?.refusal&&!n.logprobs_refusal_done&&(n.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:t.logprobs.refusal}))},Xa=function(){if(this.ended)throw new N("stream has ended, this shouldn't happen");let t=x(this,Dr,"f");if(!t)throw new N("request ended without sending any chunks");return L(this,Dr,void 0,"f"),L(this,Ns,[],"f"),E_(t,x(this,gr,"f"))},gp=function(){let t=x(this,gr,"f")?.response_format;return Yi(t)?t:null},Jd=function(t){var n,s,i,o;let a=x(this,Dr,"f"),{choices:u,...c}=t;a?Object.assign(a,c):a=L(this,Dr,{...c,choices:[]},"f");for(let{delta:l,finish_reason:p,index:h,logprobs:f=null,...g}of t.choices){let b=a.choices[h];if(b||(b=a.choices[h]={finish_reason:p,index:h,message:{},logprobs:f,...g}),f)if(!b.logprobs)b.logprobs=Object.assign({},f);else{let{content:F,refusal:D,...y}=f;Object.assign(b.logprobs,y),F&&((n=b.logprobs).content??(n.content=[]),b.logprobs.content.push(...F)),D&&((s=b.logprobs).refusal??(s.refusal=[]),b.logprobs.refusal.push(...D))}if(p&&(b.finish_reason=p,x(this,gr,"f")&&rp(x(this,gr,"f")))){if(p==="length")throw new Ps;if(p==="content_filter")throw new Es}if(Object.assign(b,g),!l)continue;let{content:_,refusal:I,function_call:v,role:S,tool_calls:C,...j}=l;if(Object.assign(b.message,j),I&&(b.message.refusal=(b.message.refusal||"")+I),S&&(b.message.role=S),v&&(b.message.function_call?(v.name&&(b.message.function_call.name=v.name),v.arguments&&((i=b.message.function_call).arguments??(i.arguments=""),b.message.function_call.arguments+=v.arguments)):b.message.function_call=v),_&&(b.message.content=(b.message.content||"")+_,!b.message.refusal&&x(this,xe,"m",gp).call(this)&&(b.message.parsed=pp(b.message.content))),C){b.message.tool_calls||(b.message.tool_calls=[]);for(let{index:F,id:D,type:y,function:T,...$}of C){let P=(o=b.message.tool_calls)[F]??(o[F]={});Object.assign(P,$),D&&(P.id=D),y&&(P.type=y),T&&(P.function??(P.function={name:T.name??"",arguments:""})),T?.name&&(P.function.name=T.name),T?.arguments&&(P.function.arguments+=T.arguments,Bd(x(this,gr,"f"),P)&&(P.function.parsed_arguments=pp(P.function.arguments)))}}}return a},Symbol.asyncIterator)](){let e=[],t=[],n=!1;return this.on("chunk",s=>{let i=t.shift();i?i.resolve(s):e.push(s)}),this.on("end",()=>{n=!0;for(let s of t)s.resolve(void 0);t.length=0}),this.on("abort",s=>{n=!0;for(let i of t)i.reject(s);t.length=0}),this.on("error",s=>{n=!0;for(let i of t)i.reject(s);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((i,o)=>t.push({resolve:i,reject:o})).then(i=>i?{value:i,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new Qt(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}};function E_(r,e){let{id:t,choices:n,created:s,model:i,system_fingerprint:o,...a}=r,u={...a,id:t,choices:n.map(({message:c,finish_reason:l,index:p,logprobs:h,...f})=>{if(!l)throw new N(`missing finish_reason for choice ${p}`);let{content:g=null,function_call:b,tool_calls:_,...I}=c,v=c.role;if(!v)throw new N(`missing role for choice ${p}`);if(b){let{arguments:S,name:C}=b;if(S==null)throw new N(`missing function_call.arguments for choice ${p}`);if(!C)throw new N(`missing function_call.name for choice ${p}`);return{...f,message:{content:g,function_call:{arguments:S,name:C},role:v,refusal:c.refusal??null},finish_reason:l,index:p,logprobs:h}}return _?{...f,index:p,finish_reason:l,logprobs:h,message:{...I,role:v,content:g,refusal:c.refusal??null,tool_calls:_.map((S,C)=>{let{function:j,type:F,id:D,...y}=S,{arguments:T,name:$,...P}=j||{};if(D==null)throw new N(`missing choices[${p}].tool_calls[${C}].id
107
- ${Ya(r)}`);if(F==null)throw new N(`missing choices[${p}].tool_calls[${C}].type
108
- ${Ya(r)}`);if($==null)throw new N(`missing choices[${p}].tool_calls[${C}].function.name
109
- ${Ya(r)}`);if(T==null)throw new N(`missing choices[${p}].tool_calls[${C}].function.arguments
110
- ${Ya(r)}`);return{...y,id:D,type:F,function:{...P,name:$,arguments:T}}})}}:{...f,message:{...I,content:g,role:v,refusal:c.refusal??null},finish_reason:l,index:p,logprobs:h}}),created:s,model:i,object:"chat.completion",...o?{system_fingerprint:o}:{}};return zd(u,e)}function Ya(r){return JSON.stringify(r)}var so=class r extends wn{static fromReadableStream(e){let t=new r(null);return t._run(()=>t._fromReadableStream(e)),t}static runTools(e,t,n){let s=new r(t),i={...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"runTools"}};return s._run(()=>s._runTools(e,t,i)),s}};var br=class extends E{constructor(){super(...arguments),this.messages=new yn(this._client)}create(e,t){return this._client.post("/chat/completions",{body:e,...t,stream:e.stream??!1})}retrieve(e,t){return this._client.get(O`/chat/completions/${e}`,t)}update(e,t,n){return this._client.post(O`/chat/completions/${e}`,{body:t,...n})}list(e={},t){return this._client.getAPIList("/chat/completions",W,{query:e,...t})}delete(e,t){return this._client.delete(O`/chat/completions/${e}`,t)}parse(e,t){return Wd(e.tools),this._client.chat.completions.create(e,{...t,headers:{...t?.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap(n=>Zi(n,e))}runTools(e,t){return e.stream?so.runTools(this._client,e,t):no.runTools(this._client,e,t)}stream(e,t){return wn.createChatCompletion(this._client,e,t)}};br.Messages=yn;var $r=class extends E{constructor(){super(...arguments),this.completions=new br(this._client)}};$r.Completions=br;var Xd=Symbol("brand.privateNullableHeaders");function*k_(r){if(!r)return;if(Xd in r){let{values:n,nulls:s}=r;yield*n.entries();for(let i of s)yield[i,null];return}let e=!1,t;r instanceof Headers?t=r.entries():Fl(r)?t=r:(e=!0,t=Object.entries(r??{}));for(let n of t){let s=n[0];if(typeof s!="string")throw new TypeError("expected header name to be a string");let i=Fl(n[1])?n[1]:[n[1]],o=!1;for(let a of i)a!==void 0&&(e&&!o&&(o=!0,yield[s,null]),yield[s,a])}}var R=r=>{let e=new Headers,t=new Set;for(let n of r){let s=new Set;for(let[i,o]of k_(n)){let a=i.toLowerCase();s.has(a)||(e.delete(i),s.add(a)),o===null?(e.delete(i),t.add(a)):(e.append(i,o),t.delete(a))}}return{[Xd]:!0,values:e,nulls:t}};var js=class extends E{create(e,t){return this._client.post("/audio/speech",{body:e,...t,headers:R([{Accept:"application/octet-stream"},t?.headers]),__binaryResponse:!0})}};var Ms=class extends E{create(e,t){return this._client.post("/audio/transcriptions",nt({body:e,...t,stream:e.stream??!1,__metadata:{model:e.model}},this._client))}};var Ds=class extends E{create(e,t){return this._client.post("/audio/translations",nt({body:e,...t,__metadata:{model:e.model}},this._client))}};var tr=class extends E{constructor(){super(...arguments),this.transcriptions=new Ms(this._client),this.translations=new Ds(this._client),this.speech=new js(this._client)}};tr.Transcriptions=Ms;tr.Translations=Ds;tr.Speech=js;var xn=class extends E{create(e,t){return this._client.post("/batches",{body:e,...t})}retrieve(e,t){return this._client.get(O`/batches/${e}`,t)}list(e={},t){return this._client.getAPIList("/batches",W,{query:e,...t})}cancel(e,t){return this._client.post(O`/batches/${e}/cancel`,t)}};var $s=class extends E{create(e,t){return this._client.post("/assistants",{body:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}retrieve(e,t){return this._client.get(O`/assistants/${e}`,{...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}update(e,t,n){return this._client.post(O`/assistants/${e}`,{body:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}list(e={},t){return this._client.getAPIList("/assistants",W,{query:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}delete(e,t){return this._client.delete(O`/assistants/${e}`,{...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}};var Ls=class extends E{create(e,t){return this._client.post("/realtime/sessions",{body:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}};var Fs=class extends E{create(e,t){return this._client.post("/realtime/transcription_sessions",{body:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}};var Lr=class extends E{constructor(){super(...arguments),this.sessions=new Ls(this._client),this.transcriptionSessions=new Fs(this._client)}};Lr.Sessions=Ls;Lr.TranscriptionSessions=Fs;var Us=class extends E{create(e,t,n){return this._client.post(O`/threads/${e}/messages`,{body:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}retrieve(e,t,n){let{thread_id:s}=t;return this._client.get(O`/threads/${s}/messages/${e}`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}update(e,t,n){let{thread_id:s,...i}=t;return this._client.post(O`/threads/${s}/messages/${e}`,{body:i,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}list(e,t={},n){return this._client.getAPIList(O`/threads/${e}/messages`,W,{query:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}delete(e,t,n){let{thread_id:s}=t;return this._client.delete(O`/threads/${s}/messages/${e}`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}};var zs=class extends E{retrieve(e,t,n){let{thread_id:s,run_id:i,...o}=t;return this._client.get(O`/threads/${s}/runs/${i}/steps/${e}`,{query:o,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}list(e,t,n){let{thread_id:s,...i}=t;return this._client.getAPIList(O`/threads/${s}/runs/${e}/steps`,W,{query:i,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}};var Yd=r=>{if(typeof Buffer<"u"){let e=Buffer.from(r,"base64");return Array.from(new Float32Array(e.buffer,e.byteOffset,e.length/Float32Array.BYTES_PER_ELEMENT))}else{let e=atob(r),t=e.length,n=new Uint8Array(t);for(let s=0;s<t;s++)n[s]=e.charCodeAt(s);return Array.from(new Float32Array(n.buffer))}};var kt=r=>{if(typeof globalThis.process<"u")return globalThis.process.env?.[r]?.trim()??void 0;if(typeof globalThis.Deno<"u")return globalThis.Deno.env?.get?.(r)?.trim()};var Re,An,bp,rr,Za,St,On,Bs,vn,tu,st,Qa,eu,ao,io,oo,Zd,Qd,em,tm,rm,nm,sm,yr=class extends Mr{constructor(){super(...arguments),Re.add(this),bp.set(this,[]),rr.set(this,{}),Za.set(this,{}),St.set(this,void 0),On.set(this,void 0),Bs.set(this,void 0),vn.set(this,void 0),tu.set(this,void 0),st.set(this,void 0),Qa.set(this,void 0),eu.set(this,void 0),ao.set(this,void 0)}[(bp=new WeakMap,rr=new WeakMap,Za=new WeakMap,St=new WeakMap,On=new WeakMap,Bs=new WeakMap,vn=new WeakMap,tu=new WeakMap,st=new WeakMap,Qa=new WeakMap,eu=new WeakMap,ao=new WeakMap,Re=new WeakSet,Symbol.asyncIterator)](){let e=[],t=[],n=!1;return this.on("event",s=>{let i=t.shift();i?i.resolve(s):e.push(s)}),this.on("end",()=>{n=!0;for(let s of t)s.resolve(void 0);t.length=0}),this.on("abort",s=>{n=!0;for(let i of t)i.reject(s);t.length=0}),this.on("error",s=>{n=!0;for(let i of t)i.reject(s);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((i,o)=>t.push({resolve:i,reject:o})).then(i=>i?{value:i,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}static fromReadableStream(e){let t=new An;return t._run(()=>t._fromReadableStream(e)),t}async _fromReadableStream(e,t){let n=t?.signal;n&&(n.aborted&&this.controller.abort(),n.addEventListener("abort",()=>this.controller.abort())),this._connected();let s=Qt.fromReadableStream(e,this.controller);for await(let i of s)x(this,Re,"m",io).call(this,i);if(s.controller.signal?.aborted)throw new fe;return this._addRun(x(this,Re,"m",oo).call(this))}toReadableStream(){return new Qt(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(e,t,n,s){let i=new An;return i._run(()=>i._runToolAssistantStream(e,t,n,{...s,headers:{...s?.headers,"X-Stainless-Helper-Method":"stream"}})),i}async _createToolAssistantStream(e,t,n,s){let i=s?.signal;i&&(i.aborted&&this.controller.abort(),i.addEventListener("abort",()=>this.controller.abort()));let o={...n,stream:!0},a=await e.submitToolOutputs(t,o,{...s,signal:this.controller.signal});this._connected();for await(let u of a)x(this,Re,"m",io).call(this,u);if(a.controller.signal?.aborted)throw new fe;return this._addRun(x(this,Re,"m",oo).call(this))}static createThreadAssistantStream(e,t,n){let s=new An;return s._run(()=>s._threadAssistantStream(e,t,{...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"stream"}})),s}static createAssistantStream(e,t,n,s){let i=new An;return i._run(()=>i._runAssistantStream(e,t,n,{...s,headers:{...s?.headers,"X-Stainless-Helper-Method":"stream"}})),i}currentEvent(){return x(this,Qa,"f")}currentRun(){return x(this,eu,"f")}currentMessageSnapshot(){return x(this,St,"f")}currentRunStepSnapshot(){return x(this,ao,"f")}async finalRunSteps(){return await this.done(),Object.values(x(this,rr,"f"))}async finalMessages(){return await this.done(),Object.values(x(this,Za,"f"))}async finalRun(){if(await this.done(),!x(this,On,"f"))throw Error("Final run was not received.");return x(this,On,"f")}async _createThreadAssistantStream(e,t,n){let s=n?.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort()));let i={...t,stream:!0},o=await e.createAndRun(i,{...n,signal:this.controller.signal});this._connected();for await(let a of o)x(this,Re,"m",io).call(this,a);if(o.controller.signal?.aborted)throw new fe;return this._addRun(x(this,Re,"m",oo).call(this))}async _createAssistantStream(e,t,n,s){let i=s?.signal;i&&(i.aborted&&this.controller.abort(),i.addEventListener("abort",()=>this.controller.abort()));let o={...n,stream:!0},a=await e.create(t,o,{...s,signal:this.controller.signal});this._connected();for await(let u of a)x(this,Re,"m",io).call(this,u);if(a.controller.signal?.aborted)throw new fe;return this._addRun(x(this,Re,"m",oo).call(this))}static accumulateDelta(e,t){for(let[n,s]of Object.entries(t)){if(!e.hasOwnProperty(n)){e[n]=s;continue}let i=e[n];if(i==null){e[n]=s;continue}if(n==="index"||n==="type"){e[n]=s;continue}if(typeof i=="string"&&typeof s=="string")i+=s;else if(typeof i=="number"&&typeof s=="number")i+=s;else if(Is(i)&&Is(s))i=this.accumulateDelta(i,s);else if(Array.isArray(i)&&Array.isArray(s)){if(i.every(o=>typeof o=="string"||typeof o=="number")){i.push(...s);continue}for(let o of s){if(!Is(o))throw new Error(`Expected array delta entry to be an object but got: ${o}`);let a=o.index;if(a==null)throw console.error(o),new Error("Expected array delta entry to have an `index` property");if(typeof a!="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${a}`);let u=i[a];u==null?i.push(o):i[a]=this.accumulateDelta(u,o)}continue}else throw Error(`Unhandled record type: ${n}, deltaValue: ${s}, accValue: ${i}`);e[n]=i}return e}_addRun(e){return e}async _threadAssistantStream(e,t,n){return await this._createThreadAssistantStream(t,e,n)}async _runAssistantStream(e,t,n,s){return await this._createAssistantStream(t,e,n,s)}async _runToolAssistantStream(e,t,n,s){return await this._createToolAssistantStream(t,e,n,s)}};An=yr,io=function(e){if(!this.ended)switch(L(this,Qa,e,"f"),x(this,Re,"m",em).call(this,e),e.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":x(this,Re,"m",sm).call(this,e);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":x(this,Re,"m",Qd).call(this,e);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":x(this,Re,"m",Zd).call(this,e);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier");default:}},oo=function(){if(this.ended)throw new N("stream has ended, this shouldn't happen");if(!x(this,On,"f"))throw Error("Final run has not been received");return x(this,On,"f")},Zd=function(e){let[t,n]=x(this,Re,"m",rm).call(this,e,x(this,St,"f"));L(this,St,t,"f"),x(this,Za,"f")[t.id]=t;for(let s of n){let i=t.content[s.index];i?.type=="text"&&this._emit("textCreated",i.text)}switch(e.event){case"thread.message.created":this._emit("messageCreated",e.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",e.data.delta,t),e.data.delta.content)for(let s of e.data.delta.content){if(s.type=="text"&&s.text){let i=s.text,o=t.content[s.index];if(o&&o.type=="text")this._emit("textDelta",i,o.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(s.index!=x(this,Bs,"f")){if(x(this,vn,"f"))switch(x(this,vn,"f").type){case"text":this._emit("textDone",x(this,vn,"f").text,x(this,St,"f"));break;case"image_file":this._emit("imageFileDone",x(this,vn,"f").image_file,x(this,St,"f"));break}L(this,Bs,s.index,"f")}L(this,vn,t.content[s.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(x(this,Bs,"f")!==void 0){let s=e.data.content[x(this,Bs,"f")];if(s)switch(s.type){case"image_file":this._emit("imageFileDone",s.image_file,x(this,St,"f"));break;case"text":this._emit("textDone",s.text,x(this,St,"f"));break}}x(this,St,"f")&&this._emit("messageDone",e.data),L(this,St,void 0,"f")}},Qd=function(e){let t=x(this,Re,"m",tm).call(this,e);switch(L(this,ao,t,"f"),e.event){case"thread.run.step.created":this._emit("runStepCreated",e.data);break;case"thread.run.step.delta":let n=e.data.delta;if(n.step_details&&n.step_details.type=="tool_calls"&&n.step_details.tool_calls&&t.step_details.type=="tool_calls")for(let i of n.step_details.tool_calls)i.index==x(this,tu,"f")?this._emit("toolCallDelta",i,t.step_details.tool_calls[i.index]):(x(this,st,"f")&&this._emit("toolCallDone",x(this,st,"f")),L(this,tu,i.index,"f"),L(this,st,t.step_details.tool_calls[i.index],"f"),x(this,st,"f")&&this._emit("toolCallCreated",x(this,st,"f")));this._emit("runStepDelta",e.data.delta,t);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":L(this,ao,void 0,"f"),e.data.step_details.type=="tool_calls"&&x(this,st,"f")&&(this._emit("toolCallDone",x(this,st,"f")),L(this,st,void 0,"f")),this._emit("runStepDone",e.data,t);break;case"thread.run.step.in_progress":break}},em=function(e){x(this,bp,"f").push(e),this._emit("event",e)},tm=function(e){switch(e.event){case"thread.run.step.created":return x(this,rr,"f")[e.data.id]=e.data,e.data;case"thread.run.step.delta":let t=x(this,rr,"f")[e.data.id];if(!t)throw Error("Received a RunStepDelta before creation of a snapshot");let n=e.data;if(n.delta){let s=An.accumulateDelta(t,n.delta);x(this,rr,"f")[e.data.id]=s}return x(this,rr,"f")[e.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":x(this,rr,"f")[e.data.id]=e.data;break}if(x(this,rr,"f")[e.data.id])return x(this,rr,"f")[e.data.id];throw new Error("No snapshot available")},rm=function(e,t){let n=[];switch(e.event){case"thread.message.created":return[e.data,n];case"thread.message.delta":if(!t)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let s=e.data;if(s.delta.content)for(let i of s.delta.content)if(i.index in t.content){let o=t.content[i.index];t.content[i.index]=x(this,Re,"m",nm).call(this,i,o)}else t.content[i.index]=i,n.push(i);return[t,n];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(t)return[t,n];throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},nm=function(e,t){return An.accumulateDelta(t,e)},sm=function(e){switch(L(this,eu,e.data,"f"),e.event){case"thread.run.created":break;case"thread.run.queued":break;case"thread.run.in_progress":break;case"thread.run.requires_action":case"thread.run.cancelled":case"thread.run.failed":case"thread.run.completed":case"thread.run.expired":case"thread.run.incomplete":L(this,On,e.data,"f"),x(this,st,"f")&&(this._emit("toolCallDone",x(this,st,"f")),L(this,st,void 0,"f"));break;case"thread.run.cancelling":break}};var Pn=class extends E{constructor(){super(...arguments),this.steps=new zs(this._client)}create(e,t,n){let{include:s,...i}=t;return this._client.post(O`/threads/${e}/runs`,{query:{include:s},body:i,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers]),stream:t.stream??!1})}retrieve(e,t,n){let{thread_id:s}=t;return this._client.get(O`/threads/${s}/runs/${e}`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}update(e,t,n){let{thread_id:s,...i}=t;return this._client.post(O`/threads/${s}/runs/${e}`,{body:i,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}list(e,t={},n){return this._client.getAPIList(O`/threads/${e}/runs`,W,{query:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}cancel(e,t,n){let{thread_id:s}=t;return this._client.post(O`/threads/${s}/runs/${e}/cancel`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}async createAndPoll(e,t,n){let s=await this.create(e,t,n);return await this.poll(s.id,{thread_id:e},n)}createAndStream(e,t,n){return yr.createAssistantStream(e,this._client.beta.threads.runs,t,n)}async poll(e,t,n){let s=R([n?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":n?.pollIntervalMs?.toString()??void 0}]);for(;;){let{data:i,response:o}=await this.retrieve(e,t,{...n,headers:{...n?.headers,...s}}).withResponse();switch(i.status){case"queued":case"in_progress":case"cancelling":let a=5e3;if(n?.pollIntervalMs)a=n.pollIntervalMs;else{let u=o.headers.get("openai-poll-after-ms");if(u){let c=parseInt(u);isNaN(c)||(a=c)}}await Yt(a);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return i}}}stream(e,t,n){return yr.createAssistantStream(e,this._client.beta.threads.runs,t,n)}submitToolOutputs(e,t,n){let{thread_id:s,...i}=t;return this._client.post(O`/threads/${s}/runs/${e}/submit_tool_outputs`,{body:i,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers]),stream:t.stream??!1})}async submitToolOutputsAndPoll(e,t,n){let s=await this.submitToolOutputs(e,t,n);return await this.poll(s.id,t,n)}submitToolOutputsStream(e,t,n){return yr.createToolAssistantStream(e,this._client.beta.threads.runs,t,n)}};Pn.Steps=zs;var Fr=class extends E{constructor(){super(...arguments),this.runs=new Pn(this._client),this.messages=new Us(this._client)}create(e={},t){return this._client.post("/threads",{body:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}retrieve(e,t){return this._client.get(O`/threads/${e}`,{...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}update(e,t,n){return this._client.post(O`/threads/${e}`,{body:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}delete(e,t){return this._client.delete(O`/threads/${e}`,{...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}createAndRun(e,t){return this._client.post("/threads/runs",{body:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers]),stream:e.stream??!1})}async createAndRunPoll(e,t){let n=await this.createAndRun(e,t);return await this.runs.poll(n.id,{thread_id:n.thread_id},t)}createAndRunStream(e,t){return yr.createThreadAssistantStream(e,this._client.beta.threads,t)}};Fr.Runs=Pn;Fr.Messages=Us;var nr=class extends E{constructor(){super(...arguments),this.realtime=new Lr(this._client),this.assistants=new $s(this._client),this.threads=new Fr(this._client)}};nr.Realtime=Lr;nr.Assistants=$s;nr.Threads=Fr;var En=class extends E{create(e,t){return this._client.post("/completions",{body:e,...t,stream:e.stream??!1})}};var Ks=class extends E{retrieve(e,t,n){let{container_id:s}=t;return this._client.get(O`/containers/${s}/files/${e}/content`,{...n,headers:R([{Accept:"application/binary"},n?.headers]),__binaryResponse:!0})}};var In=class extends E{constructor(){super(...arguments),this.content=new Ks(this._client)}create(e,t,n){return this._client.post(O`/containers/${e}/files`,nt({body:t,...n},this._client))}retrieve(e,t,n){let{container_id:s}=t;return this._client.get(O`/containers/${s}/files/${e}`,n)}list(e,t={},n){return this._client.getAPIList(O`/containers/${e}/files`,W,{query:t,...n})}delete(e,t,n){let{container_id:s}=t;return this._client.delete(O`/containers/${s}/files/${e}`,{...n,headers:R([{Accept:"*/*"},n?.headers])})}};In.Content=Ks;var Ur=class extends E{constructor(){super(...arguments),this.files=new In(this._client)}create(e,t){return this._client.post("/containers",{body:e,...t})}retrieve(e,t){return this._client.get(O`/containers/${e}`,t)}list(e={},t){return this._client.getAPIList("/containers",W,{query:e,...t})}delete(e,t){return this._client.delete(O`/containers/${e}`,{...t,headers:R([{Accept:"*/*"},t?.headers])})}};Ur.Files=In;var kn=class extends E{create(e,t){let n=!!e.encoding_format,s=n?e.encoding_format:"base64";n&&me(this._client).debug("embeddings/user defined encoding_format:",e.encoding_format);let i=this._client.post("/embeddings",{body:{...e,encoding_format:s},...t});return n?i:(me(this._client).debug("embeddings/decoding base64 embeddings from base64"),i._thenUnwrap(o=>(o&&o.data&&o.data.forEach(a=>{let u=a.embedding;a.embedding=Yd(u)}),o)))}};var Ws=class extends E{retrieve(e,t,n){let{eval_id:s,run_id:i}=t;return this._client.get(O`/evals/${s}/runs/${i}/output_items/${e}`,n)}list(e,t,n){let{eval_id:s,...i}=t;return this._client.getAPIList(O`/evals/${s}/runs/${e}/output_items`,W,{query:i,...n})}};var Sn=class extends E{constructor(){super(...arguments),this.outputItems=new Ws(this._client)}create(e,t,n){return this._client.post(O`/evals/${e}/runs`,{body:t,...n})}retrieve(e,t,n){let{eval_id:s}=t;return this._client.get(O`/evals/${s}/runs/${e}`,n)}list(e,t={},n){return this._client.getAPIList(O`/evals/${e}/runs`,W,{query:t,...n})}delete(e,t,n){let{eval_id:s}=t;return this._client.delete(O`/evals/${s}/runs/${e}`,n)}cancel(e,t,n){let{eval_id:s}=t;return this._client.post(O`/evals/${s}/runs/${e}`,n)}};Sn.OutputItems=Ws;var zr=class extends E{constructor(){super(...arguments),this.runs=new Sn(this._client)}create(e,t){return this._client.post("/evals",{body:e,...t})}retrieve(e,t){return this._client.get(O`/evals/${e}`,t)}update(e,t,n){return this._client.post(O`/evals/${e}`,{body:t,...n})}list(e={},t){return this._client.getAPIList("/evals",W,{query:e,...t})}delete(e,t){return this._client.delete(O`/evals/${e}`,t)}};zr.Runs=Sn;var Cn=class extends E{create(e,t){return this._client.post("/files",nt({body:e,...t},this._client))}retrieve(e,t){return this._client.get(O`/files/${e}`,t)}list(e={},t){return this._client.getAPIList("/files",W,{query:e,...t})}delete(e,t){return this._client.delete(O`/files/${e}`,t)}content(e,t){return this._client.get(O`/files/${e}/content`,{...t,headers:R([{Accept:"application/binary"},t?.headers]),__binaryResponse:!0})}async waitForProcessing(e,{pollInterval:t=5e3,maxWait:n=1800*1e3}={}){let s=new Set(["processed","error","deleted"]),i=Date.now(),o=await this.retrieve(e);for(;!o.status||!s.has(o.status);)if(await Yt(t),o=await this.retrieve(e),Date.now()-i>n)throw new Jt({message:`Giving up on waiting for file ${e} to finish processing after ${n} milliseconds.`});return o}};var Hs=class extends E{};var Vs=class extends E{run(e,t){return this._client.post("/fine_tuning/alpha/graders/run",{body:e,...t})}validate(e,t){return this._client.post("/fine_tuning/alpha/graders/validate",{body:e,...t})}};var Tn=class extends E{constructor(){super(...arguments),this.graders=new Vs(this._client)}};Tn.Graders=Vs;var Gs=class extends E{create(e,t,n){return this._client.getAPIList(O`/fine_tuning/checkpoints/${e}/permissions`,er,{body:t,method:"post",...n})}retrieve(e,t={},n){return this._client.get(O`/fine_tuning/checkpoints/${e}/permissions`,{query:t,...n})}delete(e,t,n){let{fine_tuned_model_checkpoint:s}=t;return this._client.delete(O`/fine_tuning/checkpoints/${s}/permissions/${e}`,n)}};var Rn=class extends E{constructor(){super(...arguments),this.permissions=new Gs(this._client)}};Rn.Permissions=Gs;var qs=class extends E{list(e,t={},n){return this._client.getAPIList(O`/fine_tuning/jobs/${e}/checkpoints`,W,{query:t,...n})}};var Nn=class extends E{constructor(){super(...arguments),this.checkpoints=new qs(this._client)}create(e,t){return this._client.post("/fine_tuning/jobs",{body:e,...t})}retrieve(e,t){return this._client.get(O`/fine_tuning/jobs/${e}`,t)}list(e={},t){return this._client.getAPIList("/fine_tuning/jobs",W,{query:e,...t})}cancel(e,t){return this._client.post(O`/fine_tuning/jobs/${e}/cancel`,t)}listEvents(e,t={},n){return this._client.getAPIList(O`/fine_tuning/jobs/${e}/events`,W,{query:t,...n})}pause(e,t){return this._client.post(O`/fine_tuning/jobs/${e}/pause`,t)}resume(e,t){return this._client.post(O`/fine_tuning/jobs/${e}/resume`,t)}};Nn.Checkpoints=qs;var Ct=class extends E{constructor(){super(...arguments),this.methods=new Hs(this._client),this.jobs=new Nn(this._client),this.checkpoints=new Rn(this._client),this.alpha=new Tn(this._client)}};Ct.Methods=Hs;Ct.Jobs=Nn;Ct.Checkpoints=Rn;Ct.Alpha=Tn;var Js=class extends E{};var Br=class extends E{constructor(){super(...arguments),this.graderModels=new Js(this._client)}};Br.GraderModels=Js;var jn=class extends E{createVariation(e,t){return this._client.post("/images/variations",nt({body:e,...t},this._client))}edit(e,t){return this._client.post("/images/edits",nt({body:e,...t,stream:e.stream??!1},this._client))}generate(e,t){return this._client.post("/images/generations",{body:e,...t,stream:e.stream??!1})}};var Mn=class extends E{retrieve(e,t){return this._client.get(O`/models/${e}`,t)}list(e){return this._client.getAPIList("/models",er,e)}delete(e,t){return this._client.delete(O`/models/${e}`,t)}};var Dn=class extends E{create(e,t){return this._client.post("/moderations",{body:e,...t})}};function im(r,e){return!e||!Q_(e)?{...r,output_parsed:null,output:r.output.map(t=>t.type==="function_call"?{...t,parsed_arguments:null}:t.type==="message"?{...t,content:t.content.map(n=>({...n,parsed:null}))}:t)}:yp(r,e)}function yp(r,e){let t=r.output.map(s=>{if(s.type==="function_call")return{...s,parsed_arguments:rw(e,s)};if(s.type==="message"){let i=s.content.map(o=>o.type==="output_text"?{...o,parsed:Z_(e,o.text)}:o);return{...s,content:i}}return s}),n=Object.assign({},r,{output:t});return Object.getOwnPropertyDescriptor(r,"output_text")||ru(n),Object.defineProperty(n,"output_parsed",{enumerable:!0,get(){for(let s of n.output)if(s.type==="message"){for(let i of s.content)if(i.type==="output_text"&&i.parsed!==null)return i.parsed}return null}}),n}function Z_(r,e){return r.text?.format?.type!=="json_schema"?null:"$parseRaw"in r.text?.format?(r.text?.format).$parseRaw(e):JSON.parse(e)}function Q_(r){return!!Yi(r.text?.format)}function ew(r){return r?.$brand==="auto-parseable-tool"}function tw(r,e){return r.find(t=>t.type==="function"&&t.name===e)}function rw(r,e){let t=tw(r.tools??[],e.name);return{...e,...e,parsed_arguments:ew(t)?t.$parseRaw(e.arguments):t?.strict?JSON.parse(e.arguments):null}}function ru(r){let e=[];for(let t of r.output)if(t.type==="message")for(let n of t.content)n.type==="output_text"&&e.push(n.text);r.output_text=e.join("")}var Xs,nu,Kr,su,om,am,um,cm,iu=class r extends Mr{constructor(e){super(),Xs.add(this),nu.set(this,void 0),Kr.set(this,void 0),su.set(this,void 0),L(this,nu,e,"f")}static createResponse(e,t,n){let s=new r(t);return s._run(()=>s._createOrRetrieveResponse(e,t,{...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"stream"}})),s}async _createOrRetrieveResponse(e,t,n){let s=n?.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),x(this,Xs,"m",om).call(this);let i,o=null;"response_id"in t?(i=await e.responses.retrieve(t.response_id,{stream:!0},{...n,signal:this.controller.signal,stream:!0}),o=t.starting_after??null):i=await e.responses.create({...t,stream:!0},{...n,signal:this.controller.signal}),this._connected();for await(let a of i)x(this,Xs,"m",am).call(this,a,o);if(i.controller.signal?.aborted)throw new fe;return x(this,Xs,"m",um).call(this)}[(nu=new WeakMap,Kr=new WeakMap,su=new WeakMap,Xs=new WeakSet,om=function(){this.ended||L(this,Kr,void 0,"f")},am=function(t,n){if(this.ended)return;let s=(o,a)=>{(n==null||a.sequence_number>n)&&this._emit(o,a)},i=x(this,Xs,"m",cm).call(this,t);switch(s("event",t),t.type){case"response.output_text.delta":{let o=i.output[t.output_index];if(!o)throw new N(`missing output at index ${t.output_index}`);if(o.type==="message"){let a=o.content[t.content_index];if(!a)throw new N(`missing content at index ${t.content_index}`);if(a.type!=="output_text")throw new N(`expected content to be 'output_text', got ${a.type}`);s("response.output_text.delta",{...t,snapshot:a.text})}break}case"response.function_call_arguments.delta":{let o=i.output[t.output_index];if(!o)throw new N(`missing output at index ${t.output_index}`);o.type==="function_call"&&s("response.function_call_arguments.delta",{...t,snapshot:o.arguments});break}default:s(t.type,t);break}},um=function(){if(this.ended)throw new N("stream has ended, this shouldn't happen");let t=x(this,Kr,"f");if(!t)throw new N("request ended without sending any events");L(this,Kr,void 0,"f");let n=nw(t,x(this,nu,"f"));return L(this,su,n,"f"),n},cm=function(t){let n=x(this,Kr,"f");if(!n){if(t.type!=="response.created")throw new N(`When snapshot hasn't been set yet, expected 'response.created' event, got ${t.type}`);return n=L(this,Kr,t.response,"f"),n}switch(t.type){case"response.output_item.added":{n.output.push(t.item);break}case"response.content_part.added":{let s=n.output[t.output_index];if(!s)throw new N(`missing output at index ${t.output_index}`);s.type==="message"&&s.content.push(t.part);break}case"response.output_text.delta":{let s=n.output[t.output_index];if(!s)throw new N(`missing output at index ${t.output_index}`);if(s.type==="message"){let i=s.content[t.content_index];if(!i)throw new N(`missing content at index ${t.content_index}`);if(i.type!=="output_text")throw new N(`expected content to be 'output_text', got ${i.type}`);i.text+=t.delta}break}case"response.function_call_arguments.delta":{let s=n.output[t.output_index];if(!s)throw new N(`missing output at index ${t.output_index}`);s.type==="function_call"&&(s.arguments+=t.delta);break}case"response.completed":{L(this,Kr,t.response,"f");break}}return n},Symbol.asyncIterator)](){let e=[],t=[],n=!1;return this.on("event",s=>{let i=t.shift();i?i.resolve(s):e.push(s)}),this.on("end",()=>{n=!0;for(let s of t)s.resolve(void 0);t.length=0}),this.on("abort",s=>{n=!0;for(let i of t)i.reject(s);t.length=0}),this.on("error",s=>{n=!0;for(let i of t)i.reject(s);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((i,o)=>t.push({resolve:i,reject:o})).then(i=>i?{value:i,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}async finalResponse(){await this.done();let e=x(this,su,"f");if(!e)throw new N("stream ended without producing a ChatCompletion");return e}};function nw(r,e){return im(r,e)}var Ys=class extends E{list(e,t={},n){return this._client.getAPIList(O`/responses/${e}/input_items`,W,{query:t,...n})}};var Wr=class extends E{constructor(){super(...arguments),this.inputItems=new Ys(this._client)}create(e,t){return this._client.post("/responses",{body:e,...t,stream:e.stream??!1})._thenUnwrap(n=>("object"in n&&n.object==="response"&&ru(n),n))}retrieve(e,t={},n){return this._client.get(O`/responses/${e}`,{query:t,...n,stream:t?.stream??!1})._thenUnwrap(s=>("object"in s&&s.object==="response"&&ru(s),s))}delete(e,t){return this._client.delete(O`/responses/${e}`,{...t,headers:R([{Accept:"*/*"},t?.headers])})}parse(e,t){return this._client.responses.create(e,t)._thenUnwrap(n=>yp(n,e))}stream(e,t){return iu.createResponse(this._client,e,t)}cancel(e,t){return this._client.post(O`/responses/${e}/cancel`,t)}};Wr.InputItems=Ys;var Zs=class extends E{create(e,t,n){return this._client.post(O`/uploads/${e}/parts`,nt({body:t,...n},this._client))}};var Hr=class extends E{constructor(){super(...arguments),this.parts=new Zs(this._client)}create(e,t){return this._client.post("/uploads",{body:e,...t})}cancel(e,t){return this._client.post(O`/uploads/${e}/cancel`,t)}complete(e,t,n){return this._client.post(O`/uploads/${e}/complete`,{body:t,...n})}};Hr.Parts=Zs;var lm=async r=>{let e=await Promise.allSettled(r),t=e.filter(s=>s.status==="rejected");if(t.length){for(let s of t)console.error(s.reason);throw new Error(`${t.length} promise(s) failed - see the above errors`)}let n=[];for(let s of e)s.status==="fulfilled"&&n.push(s.value);return n};var Qs=class extends E{create(e,t,n){return this._client.post(O`/vector_stores/${e}/file_batches`,{body:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}retrieve(e,t,n){let{vector_store_id:s}=t;return this._client.get(O`/vector_stores/${s}/file_batches/${e}`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}cancel(e,t,n){let{vector_store_id:s}=t;return this._client.post(O`/vector_stores/${s}/file_batches/${e}/cancel`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}async createAndPoll(e,t,n){let s=await this.create(e,t);return await this.poll(e,s.id,n)}listFiles(e,t,n){let{vector_store_id:s,...i}=t;return this._client.getAPIList(O`/vector_stores/${s}/file_batches/${e}/files`,W,{query:i,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}async poll(e,t,n){let s=R([n?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":n?.pollIntervalMs?.toString()??void 0}]);for(;;){let{data:i,response:o}=await this.retrieve(t,{vector_store_id:e},{...n,headers:s}).withResponse();switch(i.status){case"in_progress":let a=5e3;if(n?.pollIntervalMs)a=n.pollIntervalMs;else{let u=o.headers.get("openai-poll-after-ms");if(u){let c=parseInt(u);isNaN(c)||(a=c)}}await Yt(a);break;case"failed":case"cancelled":case"completed":return i}}}async uploadAndPoll(e,{files:t,fileIds:n=[]},s){if(t==null||t.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");let i=s?.maxConcurrency??5,o=Math.min(i,t.length),a=this._client,u=t.values(),c=[...n];async function l(h){for(let f of h){let g=await a.files.create({file:f,purpose:"assistants"},s);c.push(g.id)}}let p=Array(o).fill(u).map(l);return await lm(p),await this.createAndPoll(e,{file_ids:c})}};var ei=class extends E{create(e,t,n){return this._client.post(O`/vector_stores/${e}/files`,{body:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}retrieve(e,t,n){let{vector_store_id:s}=t;return this._client.get(O`/vector_stores/${s}/files/${e}`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}update(e,t,n){let{vector_store_id:s,...i}=t;return this._client.post(O`/vector_stores/${s}/files/${e}`,{body:i,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}list(e,t={},n){return this._client.getAPIList(O`/vector_stores/${e}/files`,W,{query:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}delete(e,t,n){let{vector_store_id:s}=t;return this._client.delete(O`/vector_stores/${s}/files/${e}`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}async createAndPoll(e,t,n){let s=await this.create(e,t,n);return await this.poll(e,s.id,n)}async poll(e,t,n){let s=R([n?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":n?.pollIntervalMs?.toString()??void 0}]);for(;;){let i=await this.retrieve(t,{vector_store_id:e},{...n,headers:s}).withResponse(),o=i.data;switch(o.status){case"in_progress":let a=5e3;if(n?.pollIntervalMs)a=n.pollIntervalMs;else{let u=i.response.headers.get("openai-poll-after-ms");if(u){let c=parseInt(u);isNaN(c)||(a=c)}}await Yt(a);break;case"failed":case"completed":return o}}}async upload(e,t,n){let s=await this._client.files.create({file:t,purpose:"assistants"},n);return this.create(e,{file_id:s.id},n)}async uploadAndPoll(e,t,n){let s=await this.upload(e,t,n);return await this.poll(e,s.id,n)}content(e,t,n){let{vector_store_id:s}=t;return this._client.getAPIList(O`/vector_stores/${s}/files/${e}/content`,er,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}};var _r=class extends E{constructor(){super(...arguments),this.files=new ei(this._client),this.fileBatches=new Qs(this._client)}create(e,t){return this._client.post("/vector_stores",{body:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}retrieve(e,t){return this._client.get(O`/vector_stores/${e}`,{...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}update(e,t,n){return this._client.post(O`/vector_stores/${e}`,{body:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}list(e={},t){return this._client.getAPIList("/vector_stores",W,{query:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}delete(e,t){return this._client.delete(O`/vector_stores/${e}`,{...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}search(e,t,n){return this._client.getAPIList(O`/vector_stores/${e}/search`,er,{body:t,method:"post",...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}};_r.Files=ei;_r.FileBatches=Qs;var ti,pm,ou,$n=class extends E{constructor(){super(...arguments),ti.add(this)}async unwrap(e,t,n=this._client.webhookSecret,s=300){return await this.verifySignature(e,t,n,s),JSON.parse(e)}async verifySignature(e,t,n=this._client.webhookSecret,s=300){if(typeof crypto>"u"||typeof crypto.subtle.importKey!="function"||typeof crypto.subtle.verify!="function")throw new Error("Webhook signature verification is only supported when the `crypto` global is defined");x(this,ti,"m",pm).call(this,n);let i=R([t]).values,o=x(this,ti,"m",ou).call(this,i,"webhook-signature"),a=x(this,ti,"m",ou).call(this,i,"webhook-timestamp"),u=x(this,ti,"m",ou).call(this,i,"webhook-id"),c=parseInt(a,10);if(isNaN(c))throw new Xt("Invalid webhook timestamp format");let l=Math.floor(Date.now()/1e3);if(l-c>s)throw new Xt("Webhook timestamp is too old");if(c>l+s)throw new Xt("Webhook timestamp is too new");let p=o.split(" ").map(b=>b.startsWith("v1,")?b.substring(3):b),h=n.startsWith("whsec_")?Buffer.from(n.replace("whsec_",""),"base64"):Buffer.from(n,"utf-8"),f=u?`${u}.${a}.${e}`:`${a}.${e}`,g=await crypto.subtle.importKey("raw",h,{name:"HMAC",hash:"SHA-256"},!1,["verify"]);for(let b of p)try{let _=Buffer.from(b,"base64");if(await crypto.subtle.verify("HMAC",g,_,new TextEncoder().encode(f)))return}catch{continue}throw new Xt("The given webhook signature does not match the expected signature")}};ti=new WeakSet,pm=function(e){if(typeof e!="string"||e.length===0)throw new Error("The webhook secret must either be set using the env var, OPENAI_WEBHOOK_SECRET, on the client class, OpenAI({ webhookSecret: '123' }), or passed to this function")},ou=function(e,t){if(!e)throw new Error("Headers are required");let n=e.get(t);if(n==null)throw new Error(`Missing required header: ${t}`);return n};var _p,wp,au,fm,z=class{constructor({baseURL:e=kt("OPENAI_BASE_URL"),apiKey:t=kt("OPENAI_API_KEY"),organization:n=kt("OPENAI_ORG_ID")??null,project:s=kt("OPENAI_PROJECT_ID")??null,webhookSecret:i=kt("OPENAI_WEBHOOK_SECRET")??null,...o}={}){if(_p.add(this),au.set(this,void 0),this.completions=new En(this),this.chat=new $r(this),this.embeddings=new kn(this),this.files=new Cn(this),this.images=new jn(this),this.audio=new tr(this),this.moderations=new Dn(this),this.models=new Mn(this),this.fineTuning=new Ct(this),this.graders=new Br(this),this.vectorStores=new _r(this),this.webhooks=new $n(this),this.beta=new nr(this),this.batches=new xn(this),this.uploads=new Hr(this),this.responses=new Wr(this),this.evals=new zr(this),this.containers=new Ur(this),t===void 0)throw new N("The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' }).");let a={apiKey:t,organization:n,project:s,webhookSecret:i,...o,baseURL:e||"https://api.openai.com/v1"};if(!a.dangerouslyAllowBrowser&&wd())throw new N(`It looks like you're running in a browser-like environment.
103
+ ${p}`)}return o},O=O_(Kd);var wn=class extends I{list(e,t={},n){return this._client.getAPIList(O`/chat/completions/${e}/messages`,W,{query:t,...n})}};function Xi(r){return r!==void 0&&"function"in r&&r.function!==void 0}function Wd(r,e){let t={...r};return Object.defineProperties(t,{$brand:{value:"auto-parseable-response-format",enumerable:!1},$parseRaw:{value:e,enumerable:!1}}),t}function Yi(r){return r?.$brand==="auto-parseable-response-format"}function xn(r){return r?.$brand==="auto-parseable-tool"}function Hd(r,e){return!e||!ip(e)?{...r,choices:r.choices.map(t=>(Gd(t.message.tool_calls),{...t,message:{...t.message,parsed:null,...t.message.tool_calls?{tool_calls:t.message.tool_calls}:void 0}}))}:Zi(r,e)}function Zi(r,e){let t=r.choices.map(n=>{if(n.finish_reason==="length")throw new Es;if(n.finish_reason==="content_filter")throw new Is;return Gd(n.message.tool_calls),{...n,message:{...n.message,...n.message.tool_calls?{tool_calls:n.message.tool_calls?.map(s=>k_(e,s))??void 0}:void 0,parsed:n.message.content&&!n.message.refusal?I_(e,n.message.content):null}}});return{...r,choices:t}}function I_(r,e){return r.response_format?.type!=="json_schema"?null:r.response_format?.type==="json_schema"?"$parseRaw"in r.response_format?r.response_format.$parseRaw(e):JSON.parse(e):null}function k_(r,e){let t=r.tools?.find(n=>Xi(n)&&n.function?.name===e.function.name);return{...e,function:{...e.function,parsed_arguments:xn(t)?t.$parseRaw(e.function.arguments):t?.function.strict?JSON.parse(e.function.arguments):null}}}function Vd(r,e){if(!r||!("tools"in r)||!r.tools)return!1;let t=r.tools?.find(n=>Xi(n)&&n.function?.name===e.function.name);return Xi(t)&&(xn(t)||t?.function.strict||!1)}function ip(r){return Yi(r.response_format)?!0:r.tools?.some(e=>xn(e)||e.type==="function"&&e.function.strict===!0)??!1}function Gd(r){for(let e of r||[])if(e.type!=="function")throw new N(`Currently only \`function\` tool calls are supported; Received \`${e.type}\``)}function qd(r){for(let e of r??[]){if(e.type!=="function")throw new N(`Currently only \`function\` tool types support auto-parsing; Received \`${e.type}\``);if(e.function.strict!==!0)throw new N(`The \`${e.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var Ts=r=>r?.role==="assistant",op=r=>r?.role==="tool";var ap,Ha,Va,Qi,eo,Ga,to,gr,ro,qa,Ja,Rs,Jd,$r=class{constructor(){ap.add(this),this.controller=new AbortController,Ha.set(this,void 0),Va.set(this,()=>{}),Qi.set(this,()=>{}),eo.set(this,void 0),Ga.set(this,()=>{}),to.set(this,()=>{}),gr.set(this,{}),ro.set(this,!1),qa.set(this,!1),Ja.set(this,!1),Rs.set(this,!1),L(this,Ha,new Promise((e,t)=>{L(this,Va,e,"f"),L(this,Qi,t,"f")}),"f"),L(this,eo,new Promise((e,t)=>{L(this,Ga,e,"f"),L(this,to,t,"f")}),"f"),x(this,Ha,"f").catch(()=>{}),x(this,eo,"f").catch(()=>{})}_run(e){setTimeout(()=>{e().then(()=>{this._emitFinal(),this._emit("end")},x(this,ap,"m",Jd).bind(this))},0)}_connected(){this.ended||(x(this,Va,"f").call(this),this._emit("connect"))}get ended(){return x(this,ro,"f")}get errored(){return x(this,qa,"f")}get aborted(){return x(this,Ja,"f")}abort(){this.controller.abort()}on(e,t){return(x(this,gr,"f")[e]||(x(this,gr,"f")[e]=[])).push({listener:t}),this}off(e,t){let n=x(this,gr,"f")[e];if(!n)return this;let s=n.findIndex(i=>i.listener===t);return s>=0&&n.splice(s,1),this}once(e,t){return(x(this,gr,"f")[e]||(x(this,gr,"f")[e]=[])).push({listener:t,once:!0}),this}emitted(e){return new Promise((t,n)=>{L(this,Rs,!0,"f"),e!=="error"&&this.once("error",n),this.once(e,t)})}async done(){L(this,Rs,!0,"f"),await x(this,eo,"f")}_emit(e,...t){if(x(this,ro,"f"))return;e==="end"&&(L(this,ro,!0,"f"),x(this,Ga,"f").call(this));let n=x(this,gr,"f")[e];if(n&&(x(this,gr,"f")[e]=n.filter(s=>!s.once),n.forEach(({listener:s})=>s(...t))),e==="abort"){let s=t[0];!x(this,Rs,"f")&&!n?.length&&Promise.reject(s),x(this,Qi,"f").call(this,s),x(this,to,"f").call(this,s),this._emit("end");return}if(e==="error"){let s=t[0];!x(this,Rs,"f")&&!n?.length&&Promise.reject(s),x(this,Qi,"f").call(this,s),x(this,to,"f").call(this,s),this._emit("end")}}_emitFinal(){}};Ha=new WeakMap,Va=new WeakMap,Qi=new WeakMap,eo=new WeakMap,Ga=new WeakMap,to=new WeakMap,gr=new WeakMap,ro=new WeakMap,qa=new WeakMap,Ja=new WeakMap,Rs=new WeakMap,ap=new WeakSet,Jd=function(e){if(L(this,qa,!0,"f"),e instanceof Error&&e.name==="AbortError"&&(e=new fe),e instanceof fe)return L(this,Ja,!0,"f"),this._emit("abort",e);if(e instanceof N)return this._emit("error",e);if(e instanceof Error){let t=new N(e.message);return t.cause=e,this._emit("error",t)}return this._emit("error",new N(String(e)))};function Xd(r){return typeof r.parse=="function"}var He,up,Xa,cp,lp,pp,Yd,Zd,S_=10,Ns=class extends $r{constructor(){super(...arguments),He.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(e){this._chatCompletions.push(e),this._emit("chatCompletion",e);let t=e.choices[0]?.message;return t&&this._addMessage(t),e}_addMessage(e,t=!0){if("content"in e||(e.content=null),this.messages.push(e),t){if(this._emit("message",e),op(e)&&e.content)this._emit("functionToolCallResult",e.content);else if(Ts(e)&&e.tool_calls)for(let n of e.tool_calls)n.type==="function"&&this._emit("functionToolCall",n.function)}}async finalChatCompletion(){await this.done();let e=this._chatCompletions[this._chatCompletions.length-1];if(!e)throw new N("stream ended without producing a ChatCompletion");return e}async finalContent(){return await this.done(),x(this,He,"m",up).call(this)}async finalMessage(){return await this.done(),x(this,He,"m",Xa).call(this)}async finalFunctionToolCall(){return await this.done(),x(this,He,"m",cp).call(this)}async finalFunctionToolCallResult(){return await this.done(),x(this,He,"m",lp).call(this)}async totalUsage(){return await this.done(),x(this,He,"m",pp).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let e=this._chatCompletions[this._chatCompletions.length-1];e&&this._emit("finalChatCompletion",e);let t=x(this,He,"m",Xa).call(this);t&&this._emit("finalMessage",t);let n=x(this,He,"m",up).call(this);n&&this._emit("finalContent",n);let s=x(this,He,"m",cp).call(this);s&&this._emit("finalFunctionToolCall",s);let i=x(this,He,"m",lp).call(this);i!=null&&this._emit("finalFunctionToolCallResult",i),this._chatCompletions.some(o=>o.usage)&&this._emit("totalUsage",x(this,He,"m",pp).call(this))}async _createChatCompletion(e,t,n){let s=n?.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),x(this,He,"m",Yd).call(this,t);let i=await e.chat.completions.create({...t,stream:!1},{...n,signal:this.controller.signal});return this._connected(),this._addChatCompletion(Zi(i,t))}async _runChatCompletion(e,t,n){for(let s of t.messages)this._addMessage(s,!1);return await this._createChatCompletion(e,t,n)}async _runTools(e,t,n){let s="tool",{tool_choice:i="auto",stream:o,...a}=t,u=typeof i!="string"&&i.type==="function"&&i?.function?.name,{maxChatCompletions:c=S_}=n||{},l=t.tools.map(f=>{if(xn(f)){if(!f.$callback)throw new N("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:f.$callback,name:f.function.name,description:f.function.description||"",parameters:f.function.parameters,parse:f.$parseRaw,strict:!0}}}return f}),p={};for(let f of l)f.type==="function"&&(p[f.function.name||f.function.function.name]=f.function);let h="tools"in t?l.map(f=>f.type==="function"?{type:"function",function:{name:f.function.name||f.function.function.name,parameters:f.function.parameters,description:f.function.description,strict:f.function.strict}}:f):void 0;for(let f of t.messages)this._addMessage(f,!1);for(let f=0;f<c;++f){let b=(await this._createChatCompletion(e,{...a,tool_choice:i,tools:h,messages:[...this.messages]},n)).choices[0]?.message;if(!b)throw new N("missing message in ChatCompletion response");if(!b.tool_calls?.length)return;for(let _ of b.tool_calls){if(_.type!=="function")continue;let P=_.id,{name:v,arguments:S}=_.function,C=p[v];if(C){if(u&&u!==v){let y=`Invalid tool_call: ${JSON.stringify(v)}. ${JSON.stringify(u)} requested. Please try again`;this._addMessage({role:s,tool_call_id:P,content:y});continue}}else{let y=`Invalid tool_call: ${JSON.stringify(v)}. Available options are: ${Object.keys(p).map(T=>JSON.stringify(T)).join(", ")}. Please try again`;this._addMessage({role:s,tool_call_id:P,content:y});continue}let j;try{j=Xd(C)?await C.parse(S):S}catch(y){let T=y instanceof Error?y.message:String(y);this._addMessage({role:s,tool_call_id:P,content:T});continue}let F=await C.function(j,this),D=x(this,He,"m",Zd).call(this,F);if(this._addMessage({role:s,tool_call_id:P,content:D}),u)return}}}};He=new WeakSet,up=function(){return x(this,He,"m",Xa).call(this).content??null},Xa=function(){let e=this.messages.length;for(;e-- >0;){let t=this.messages[e];if(Ts(t))return{...t,content:t.content??null,refusal:t.refusal??null}}throw new N("stream ended without producing a ChatCompletionMessage with role=assistant")},cp=function(){for(let e=this.messages.length-1;e>=0;e--){let t=this.messages[e];if(Ts(t)&&t?.tool_calls?.length)return t.tool_calls.filter(n=>n.type==="function").at(-1)?.function}},lp=function(){for(let e=this.messages.length-1;e>=0;e--){let t=this.messages[e];if(op(t)&&t.content!=null&&typeof t.content=="string"&&this.messages.some(n=>n.role==="assistant"&&n.tool_calls?.some(s=>s.type==="function"&&s.id===t.tool_call_id)))return t.content}},pp=function(){let e={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(let{usage:t}of this._chatCompletions)t&&(e.completion_tokens+=t.completion_tokens,e.prompt_tokens+=t.prompt_tokens,e.total_tokens+=t.total_tokens);return e},Yd=function(e){if(e.n!=null&&e.n>1)throw new N("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},Zd=function(e){return typeof e=="string"?e:e===void 0?"undefined":JSON.stringify(e)};var no=class r extends Ns{static runTools(e,t,n){let s=new r,i={...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"runTools"}};return s._run(()=>s._runTools(e,t,i)),s}_addMessage(e,t=!0){super._addMessage(e,t),Ts(e)&&e.content&&this._emit("content",e.content)}};var ke={STR:1,NUM:2,ARR:4,OBJ:8,NULL:16,BOOL:32,NAN:64,INFINITY:128,MINUS_INFINITY:256,INF:384,SPECIAL:496,ATOM:499,COLLECTION:12,ALL:511},fp=class extends Error{},hp=class extends Error{};function C_(r,e=ke.ALL){if(typeof r!="string")throw new TypeError(`expecting str, got ${typeof r}`);if(!r.trim())throw new Error(`${r} is empty`);return T_(r.trim(),e)}var T_=(r,e)=>{let t=r.length,n=0,s=h=>{throw new fp(`${h} at position ${n}`)},i=h=>{throw new hp(`${h} at position ${n}`)},o=()=>(p(),n>=t&&s("Unexpected end of input"),r[n]==='"'?a():r[n]==="{"?u():r[n]==="["?c():r.substring(n,n+4)==="null"||ke.NULL&e&&t-n<4&&"null".startsWith(r.substring(n))?(n+=4,null):r.substring(n,n+4)==="true"||ke.BOOL&e&&t-n<4&&"true".startsWith(r.substring(n))?(n+=4,!0):r.substring(n,n+5)==="false"||ke.BOOL&e&&t-n<5&&"false".startsWith(r.substring(n))?(n+=5,!1):r.substring(n,n+8)==="Infinity"||ke.INFINITY&e&&t-n<8&&"Infinity".startsWith(r.substring(n))?(n+=8,1/0):r.substring(n,n+9)==="-Infinity"||ke.MINUS_INFINITY&e&&1<t-n&&t-n<9&&"-Infinity".startsWith(r.substring(n))?(n+=9,-1/0):r.substring(n,n+3)==="NaN"||ke.NAN&e&&t-n<3&&"NaN".startsWith(r.substring(n))?(n+=3,NaN):l()),a=()=>{let h=n,f=!1;for(n++;n<t&&(r[n]!=='"'||f&&r[n-1]==="\\");)f=r[n]==="\\"?!f:!1,n++;if(r.charAt(n)=='"')try{return JSON.parse(r.substring(h,++n-Number(f)))}catch(g){i(String(g))}else if(ke.STR&e)try{return JSON.parse(r.substring(h,n-Number(f))+'"')}catch{return JSON.parse(r.substring(h,r.lastIndexOf("\\"))+'"')}s("Unterminated string literal")},u=()=>{n++,p();let h={};try{for(;r[n]!=="}";){if(p(),n>=t&&ke.OBJ&e)return h;let f=a();p(),n++;try{let g=o();Object.defineProperty(h,f,{value:g,writable:!0,enumerable:!0,configurable:!0})}catch(g){if(ke.OBJ&e)return h;throw g}p(),r[n]===","&&n++}}catch{if(ke.OBJ&e)return h;s("Expected '}' at end of object")}return n++,h},c=()=>{n++;let h=[];try{for(;r[n]!=="]";)h.push(o()),p(),r[n]===","&&n++}catch{if(ke.ARR&e)return h;s("Expected ']' at end of array")}return n++,h},l=()=>{if(n===0){r==="-"&&ke.NUM&e&&s("Not sure what '-' is");try{return JSON.parse(r)}catch(f){if(ke.NUM&e)try{return r[r.length-1]==="."?JSON.parse(r.substring(0,r.lastIndexOf("."))):JSON.parse(r.substring(0,r.lastIndexOf("e")))}catch{}i(String(f))}}let h=n;for(r[n]==="-"&&n++;r[n]&&!",]}".includes(r[n]);)n++;n==t&&!(ke.NUM&e)&&s("Unterminated number literal");try{return JSON.parse(r.substring(h,n))}catch{r.substring(h,n)==="-"&&ke.NUM&e&&s("Not sure what '-' is");try{return JSON.parse(r.substring(h,r.lastIndexOf("e")))}catch(g){i(String(g))}}},p=()=>{for(;n<t&&`
104
+ \r `.includes(r[n]);)n++};return o()},dp=r=>C_(r,ke.ALL^ke.NUM);var xe,br,js,Lr,mp,Ya,gp,bp,yp,Za,_p,Qd,vn=class r extends Ns{constructor(e){super(),xe.add(this),br.set(this,void 0),js.set(this,void 0),Lr.set(this,void 0),L(this,br,e,"f"),L(this,js,[],"f")}get currentChatCompletionSnapshot(){return x(this,Lr,"f")}static fromReadableStream(e){let t=new r(null);return t._run(()=>t._fromReadableStream(e)),t}static createChatCompletion(e,t,n){let s=new r(t);return s._run(()=>s._runChatCompletion(e,{...t,stream:!0},{...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"stream"}})),s}async _createChatCompletion(e,t,n){super._createChatCompletion;let s=n?.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),x(this,xe,"m",mp).call(this);let i=await e.chat.completions.create({...t,stream:!0},{...n,signal:this.controller.signal});this._connected();for await(let o of i)x(this,xe,"m",gp).call(this,o);if(i.controller.signal?.aborted)throw new fe;return this._addChatCompletion(x(this,xe,"m",Za).call(this))}async _fromReadableStream(e,t){let n=t?.signal;n&&(n.aborted&&this.controller.abort(),n.addEventListener("abort",()=>this.controller.abort())),x(this,xe,"m",mp).call(this),this._connected();let s=Qt.fromReadableStream(e,this.controller),i;for await(let o of s)i&&i!==o.id&&this._addChatCompletion(x(this,xe,"m",Za).call(this)),x(this,xe,"m",gp).call(this,o),i=o.id;if(s.controller.signal?.aborted)throw new fe;return this._addChatCompletion(x(this,xe,"m",Za).call(this))}[(br=new WeakMap,js=new WeakMap,Lr=new WeakMap,xe=new WeakSet,mp=function(){this.ended||L(this,Lr,void 0,"f")},Ya=function(t){let n=x(this,js,"f")[t.index];return n||(n={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},x(this,js,"f")[t.index]=n,n)},gp=function(t){if(this.ended)return;let n=x(this,xe,"m",Qd).call(this,t);this._emit("chunk",t,n);for(let s of t.choices){let i=n.choices[s.index];s.delta.content!=null&&i.message?.role==="assistant"&&i.message?.content&&(this._emit("content",s.delta.content,i.message.content),this._emit("content.delta",{delta:s.delta.content,snapshot:i.message.content,parsed:i.message.parsed})),s.delta.refusal!=null&&i.message?.role==="assistant"&&i.message?.refusal&&this._emit("refusal.delta",{delta:s.delta.refusal,snapshot:i.message.refusal}),s.logprobs?.content!=null&&i.message?.role==="assistant"&&this._emit("logprobs.content.delta",{content:s.logprobs?.content,snapshot:i.logprobs?.content??[]}),s.logprobs?.refusal!=null&&i.message?.role==="assistant"&&this._emit("logprobs.refusal.delta",{refusal:s.logprobs?.refusal,snapshot:i.logprobs?.refusal??[]});let o=x(this,xe,"m",Ya).call(this,i);i.finish_reason&&(x(this,xe,"m",yp).call(this,i),o.current_tool_call_index!=null&&x(this,xe,"m",bp).call(this,i,o.current_tool_call_index));for(let a of s.delta.tool_calls??[])o.current_tool_call_index!==a.index&&(x(this,xe,"m",yp).call(this,i),o.current_tool_call_index!=null&&x(this,xe,"m",bp).call(this,i,o.current_tool_call_index)),o.current_tool_call_index=a.index;for(let a of s.delta.tool_calls??[]){let u=i.message.tool_calls?.[a.index];u?.type&&(u?.type==="function"?this._emit("tool_calls.function.arguments.delta",{name:u.function?.name,index:a.index,arguments:u.function.arguments,parsed_arguments:u.function.parsed_arguments,arguments_delta:a.function?.arguments??""}):(u?.type,void 0))}}},bp=function(t,n){if(x(this,xe,"m",Ya).call(this,t).done_tool_calls.has(n))return;let i=t.message.tool_calls?.[n];if(!i)throw new Error("no tool call snapshot");if(!i.type)throw new Error("tool call snapshot missing `type`");if(i.type==="function"){let o=x(this,br,"f")?.tools?.find(a=>Xi(a)&&a.function.name===i.function.name);this._emit("tool_calls.function.arguments.done",{name:i.function.name,index:n,arguments:i.function.arguments,parsed_arguments:xn(o)?o.$parseRaw(i.function.arguments):o?.function.strict?JSON.parse(i.function.arguments):null})}else i.type},yp=function(t){let n=x(this,xe,"m",Ya).call(this,t);if(t.message.content&&!n.content_done){n.content_done=!0;let s=x(this,xe,"m",_p).call(this);this._emit("content.done",{content:t.message.content,parsed:s?s.$parseRaw(t.message.content):null})}t.message.refusal&&!n.refusal_done&&(n.refusal_done=!0,this._emit("refusal.done",{refusal:t.message.refusal})),t.logprobs?.content&&!n.logprobs_content_done&&(n.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:t.logprobs.content})),t.logprobs?.refusal&&!n.logprobs_refusal_done&&(n.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:t.logprobs.refusal}))},Za=function(){if(this.ended)throw new N("stream has ended, this shouldn't happen");let t=x(this,Lr,"f");if(!t)throw new N("request ended without sending any chunks");return L(this,Lr,void 0,"f"),L(this,js,[],"f"),R_(t,x(this,br,"f"))},_p=function(){let t=x(this,br,"f")?.response_format;return Yi(t)?t:null},Qd=function(t){var n,s,i,o;let a=x(this,Lr,"f"),{choices:u,...c}=t;a?Object.assign(a,c):a=L(this,Lr,{...c,choices:[]},"f");for(let{delta:l,finish_reason:p,index:h,logprobs:f=null,...g}of t.choices){let b=a.choices[h];if(b||(b=a.choices[h]={finish_reason:p,index:h,message:{},logprobs:f,...g}),f)if(!b.logprobs)b.logprobs=Object.assign({},f);else{let{content:F,refusal:D,...y}=f;Object.assign(b.logprobs,y),F&&((n=b.logprobs).content??(n.content=[]),b.logprobs.content.push(...F)),D&&((s=b.logprobs).refusal??(s.refusal=[]),b.logprobs.refusal.push(...D))}if(p&&(b.finish_reason=p,x(this,br,"f")&&ip(x(this,br,"f")))){if(p==="length")throw new Es;if(p==="content_filter")throw new Is}if(Object.assign(b,g),!l)continue;let{content:_,refusal:P,function_call:v,role:S,tool_calls:C,...j}=l;if(Object.assign(b.message,j),P&&(b.message.refusal=(b.message.refusal||"")+P),S&&(b.message.role=S),v&&(b.message.function_call?(v.name&&(b.message.function_call.name=v.name),v.arguments&&((i=b.message.function_call).arguments??(i.arguments=""),b.message.function_call.arguments+=v.arguments)):b.message.function_call=v),_&&(b.message.content=(b.message.content||"")+_,!b.message.refusal&&x(this,xe,"m",_p).call(this)&&(b.message.parsed=dp(b.message.content))),C){b.message.tool_calls||(b.message.tool_calls=[]);for(let{index:F,id:D,type:y,function:T,...$}of C){let E=(o=b.message.tool_calls)[F]??(o[F]={});Object.assign(E,$),D&&(E.id=D),y&&(E.type=y),T&&(E.function??(E.function={name:T.name??"",arguments:""})),T?.name&&(E.function.name=T.name),T?.arguments&&(E.function.arguments+=T.arguments,Vd(x(this,br,"f"),E)&&(E.function.parsed_arguments=dp(E.function.arguments)))}}}return a},Symbol.asyncIterator)](){let e=[],t=[],n=!1;return this.on("chunk",s=>{let i=t.shift();i?i.resolve(s):e.push(s)}),this.on("end",()=>{n=!0;for(let s of t)s.resolve(void 0);t.length=0}),this.on("abort",s=>{n=!0;for(let i of t)i.reject(s);t.length=0}),this.on("error",s=>{n=!0;for(let i of t)i.reject(s);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((i,o)=>t.push({resolve:i,reject:o})).then(i=>i?{value:i,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new Qt(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}};function R_(r,e){let{id:t,choices:n,created:s,model:i,system_fingerprint:o,...a}=r,u={...a,id:t,choices:n.map(({message:c,finish_reason:l,index:p,logprobs:h,...f})=>{if(!l)throw new N(`missing finish_reason for choice ${p}`);let{content:g=null,function_call:b,tool_calls:_,...P}=c,v=c.role;if(!v)throw new N(`missing role for choice ${p}`);if(b){let{arguments:S,name:C}=b;if(S==null)throw new N(`missing function_call.arguments for choice ${p}`);if(!C)throw new N(`missing function_call.name for choice ${p}`);return{...f,message:{content:g,function_call:{arguments:S,name:C},role:v,refusal:c.refusal??null},finish_reason:l,index:p,logprobs:h}}return _?{...f,index:p,finish_reason:l,logprobs:h,message:{...P,role:v,content:g,refusal:c.refusal??null,tool_calls:_.map((S,C)=>{let{function:j,type:F,id:D,...y}=S,{arguments:T,name:$,...E}=j||{};if(D==null)throw new N(`missing choices[${p}].tool_calls[${C}].id
105
+ ${Qa(r)}`);if(F==null)throw new N(`missing choices[${p}].tool_calls[${C}].type
106
+ ${Qa(r)}`);if($==null)throw new N(`missing choices[${p}].tool_calls[${C}].function.name
107
+ ${Qa(r)}`);if(T==null)throw new N(`missing choices[${p}].tool_calls[${C}].function.arguments
108
+ ${Qa(r)}`);return{...y,id:D,type:F,function:{...E,name:$,arguments:T}}})}}:{...f,message:{...P,content:g,role:v,refusal:c.refusal??null},finish_reason:l,index:p,logprobs:h}}),created:s,model:i,object:"chat.completion",...o?{system_fingerprint:o}:{}};return Hd(u,e)}function Qa(r){return JSON.stringify(r)}var so=class r extends vn{static fromReadableStream(e){let t=new r(null);return t._run(()=>t._fromReadableStream(e)),t}static runTools(e,t,n){let s=new r(t),i={...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"runTools"}};return s._run(()=>s._runTools(e,t,i)),s}};var yr=class extends I{constructor(){super(...arguments),this.messages=new wn(this._client)}create(e,t){return this._client.post("/chat/completions",{body:e,...t,stream:e.stream??!1})}retrieve(e,t){return this._client.get(O`/chat/completions/${e}`,t)}update(e,t,n){return this._client.post(O`/chat/completions/${e}`,{body:t,...n})}list(e={},t){return this._client.getAPIList("/chat/completions",W,{query:e,...t})}delete(e,t){return this._client.delete(O`/chat/completions/${e}`,t)}parse(e,t){return qd(e.tools),this._client.chat.completions.create(e,{...t,headers:{...t?.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap(n=>Zi(n,e))}runTools(e,t){return e.stream?so.runTools(this._client,e,t):no.runTools(this._client,e,t)}stream(e,t){return vn.createChatCompletion(this._client,e,t)}};yr.Messages=wn;var Fr=class extends I{constructor(){super(...arguments),this.completions=new yr(this._client)}};Fr.Completions=yr;var em=Symbol("brand.privateNullableHeaders");function*j_(r){if(!r)return;if(em in r){let{values:n,nulls:s}=r;yield*n.entries();for(let i of s)yield[i,null];return}let e=!1,t;r instanceof Headers?t=r.entries():Bl(r)?t=r:(e=!0,t=Object.entries(r??{}));for(let n of t){let s=n[0];if(typeof s!="string")throw new TypeError("expected header name to be a string");let i=Bl(n[1])?n[1]:[n[1]],o=!1;for(let a of i)a!==void 0&&(e&&!o&&(o=!0,yield[s,null]),yield[s,a])}}var R=r=>{let e=new Headers,t=new Set;for(let n of r){let s=new Set;for(let[i,o]of j_(n)){let a=i.toLowerCase();s.has(a)||(e.delete(i),s.add(a)),o===null?(e.delete(i),t.add(a)):(e.append(i,o),t.delete(a))}}return{[em]:!0,values:e,nulls:t}};var Ms=class extends I{create(e,t){return this._client.post("/audio/speech",{body:e,...t,headers:R([{Accept:"application/octet-stream"},t?.headers]),__binaryResponse:!0})}};var Ds=class extends I{create(e,t){return this._client.post("/audio/transcriptions",nt({body:e,...t,stream:e.stream??!1,__metadata:{model:e.model}},this._client))}};var $s=class extends I{create(e,t){return this._client.post("/audio/translations",nt({body:e,...t,__metadata:{model:e.model}},this._client))}};var tr=class extends I{constructor(){super(...arguments),this.transcriptions=new Ds(this._client),this.translations=new $s(this._client),this.speech=new Ms(this._client)}};tr.Transcriptions=Ds;tr.Translations=$s;tr.Speech=Ms;var An=class extends I{create(e,t){return this._client.post("/batches",{body:e,...t})}retrieve(e,t){return this._client.get(O`/batches/${e}`,t)}list(e={},t){return this._client.getAPIList("/batches",W,{query:e,...t})}cancel(e,t){return this._client.post(O`/batches/${e}/cancel`,t)}};var Ls=class extends I{create(e,t){return this._client.post("/assistants",{body:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}retrieve(e,t){return this._client.get(O`/assistants/${e}`,{...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}update(e,t,n){return this._client.post(O`/assistants/${e}`,{body:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}list(e={},t){return this._client.getAPIList("/assistants",W,{query:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}delete(e,t){return this._client.delete(O`/assistants/${e}`,{...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}};var Fs=class extends I{create(e,t){return this._client.post("/realtime/sessions",{body:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}};var Us=class extends I{create(e,t){return this._client.post("/realtime/transcription_sessions",{body:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}};var Ur=class extends I{constructor(){super(...arguments),this.sessions=new Fs(this._client),this.transcriptionSessions=new Us(this._client)}};Ur.Sessions=Fs;Ur.TranscriptionSessions=Us;var zs=class extends I{create(e,t,n){return this._client.post(O`/threads/${e}/messages`,{body:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}retrieve(e,t,n){let{thread_id:s}=t;return this._client.get(O`/threads/${s}/messages/${e}`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}update(e,t,n){let{thread_id:s,...i}=t;return this._client.post(O`/threads/${s}/messages/${e}`,{body:i,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}list(e,t={},n){return this._client.getAPIList(O`/threads/${e}/messages`,W,{query:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}delete(e,t,n){let{thread_id:s}=t;return this._client.delete(O`/threads/${s}/messages/${e}`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}};var Bs=class extends I{retrieve(e,t,n){let{thread_id:s,run_id:i,...o}=t;return this._client.get(O`/threads/${s}/runs/${i}/steps/${e}`,{query:o,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}list(e,t,n){let{thread_id:s,...i}=t;return this._client.getAPIList(O`/threads/${s}/runs/${e}/steps`,W,{query:i,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}};var tm=r=>{if(typeof Buffer<"u"){let e=Buffer.from(r,"base64");return Array.from(new Float32Array(e.buffer,e.byteOffset,e.length/Float32Array.BYTES_PER_ELEMENT))}else{let e=atob(r),t=e.length,n=new Uint8Array(t);for(let s=0;s<t;s++)n[s]=e.charCodeAt(s);return Array.from(new Float32Array(n.buffer))}};var kt=r=>{if(typeof globalThis.process<"u")return globalThis.process.env?.[r]?.trim()??void 0;if(typeof globalThis.Deno<"u")return globalThis.Deno.env?.get?.(r)?.trim()};var Re,Pn,wp,rr,eu,St,En,Ks,On,nu,st,tu,ru,ao,io,oo,rm,nm,sm,im,om,am,um,_r=class extends $r{constructor(){super(...arguments),Re.add(this),wp.set(this,[]),rr.set(this,{}),eu.set(this,{}),St.set(this,void 0),En.set(this,void 0),Ks.set(this,void 0),On.set(this,void 0),nu.set(this,void 0),st.set(this,void 0),tu.set(this,void 0),ru.set(this,void 0),ao.set(this,void 0)}[(wp=new WeakMap,rr=new WeakMap,eu=new WeakMap,St=new WeakMap,En=new WeakMap,Ks=new WeakMap,On=new WeakMap,nu=new WeakMap,st=new WeakMap,tu=new WeakMap,ru=new WeakMap,ao=new WeakMap,Re=new WeakSet,Symbol.asyncIterator)](){let e=[],t=[],n=!1;return this.on("event",s=>{let i=t.shift();i?i.resolve(s):e.push(s)}),this.on("end",()=>{n=!0;for(let s of t)s.resolve(void 0);t.length=0}),this.on("abort",s=>{n=!0;for(let i of t)i.reject(s);t.length=0}),this.on("error",s=>{n=!0;for(let i of t)i.reject(s);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((i,o)=>t.push({resolve:i,reject:o})).then(i=>i?{value:i,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}static fromReadableStream(e){let t=new Pn;return t._run(()=>t._fromReadableStream(e)),t}async _fromReadableStream(e,t){let n=t?.signal;n&&(n.aborted&&this.controller.abort(),n.addEventListener("abort",()=>this.controller.abort())),this._connected();let s=Qt.fromReadableStream(e,this.controller);for await(let i of s)x(this,Re,"m",io).call(this,i);if(s.controller.signal?.aborted)throw new fe;return this._addRun(x(this,Re,"m",oo).call(this))}toReadableStream(){return new Qt(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(e,t,n,s){let i=new Pn;return i._run(()=>i._runToolAssistantStream(e,t,n,{...s,headers:{...s?.headers,"X-Stainless-Helper-Method":"stream"}})),i}async _createToolAssistantStream(e,t,n,s){let i=s?.signal;i&&(i.aborted&&this.controller.abort(),i.addEventListener("abort",()=>this.controller.abort()));let o={...n,stream:!0},a=await e.submitToolOutputs(t,o,{...s,signal:this.controller.signal});this._connected();for await(let u of a)x(this,Re,"m",io).call(this,u);if(a.controller.signal?.aborted)throw new fe;return this._addRun(x(this,Re,"m",oo).call(this))}static createThreadAssistantStream(e,t,n){let s=new Pn;return s._run(()=>s._threadAssistantStream(e,t,{...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"stream"}})),s}static createAssistantStream(e,t,n,s){let i=new Pn;return i._run(()=>i._runAssistantStream(e,t,n,{...s,headers:{...s?.headers,"X-Stainless-Helper-Method":"stream"}})),i}currentEvent(){return x(this,tu,"f")}currentRun(){return x(this,ru,"f")}currentMessageSnapshot(){return x(this,St,"f")}currentRunStepSnapshot(){return x(this,ao,"f")}async finalRunSteps(){return await this.done(),Object.values(x(this,rr,"f"))}async finalMessages(){return await this.done(),Object.values(x(this,eu,"f"))}async finalRun(){if(await this.done(),!x(this,En,"f"))throw Error("Final run was not received.");return x(this,En,"f")}async _createThreadAssistantStream(e,t,n){let s=n?.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort()));let i={...t,stream:!0},o=await e.createAndRun(i,{...n,signal:this.controller.signal});this._connected();for await(let a of o)x(this,Re,"m",io).call(this,a);if(o.controller.signal?.aborted)throw new fe;return this._addRun(x(this,Re,"m",oo).call(this))}async _createAssistantStream(e,t,n,s){let i=s?.signal;i&&(i.aborted&&this.controller.abort(),i.addEventListener("abort",()=>this.controller.abort()));let o={...n,stream:!0},a=await e.create(t,o,{...s,signal:this.controller.signal});this._connected();for await(let u of a)x(this,Re,"m",io).call(this,u);if(a.controller.signal?.aborted)throw new fe;return this._addRun(x(this,Re,"m",oo).call(this))}static accumulateDelta(e,t){for(let[n,s]of Object.entries(t)){if(!e.hasOwnProperty(n)){e[n]=s;continue}let i=e[n];if(i==null){e[n]=s;continue}if(n==="index"||n==="type"){e[n]=s;continue}if(typeof i=="string"&&typeof s=="string")i+=s;else if(typeof i=="number"&&typeof s=="number")i+=s;else if(ks(i)&&ks(s))i=this.accumulateDelta(i,s);else if(Array.isArray(i)&&Array.isArray(s)){if(i.every(o=>typeof o=="string"||typeof o=="number")){i.push(...s);continue}for(let o of s){if(!ks(o))throw new Error(`Expected array delta entry to be an object but got: ${o}`);let a=o.index;if(a==null)throw console.error(o),new Error("Expected array delta entry to have an `index` property");if(typeof a!="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${a}`);let u=i[a];u==null?i.push(o):i[a]=this.accumulateDelta(u,o)}continue}else throw Error(`Unhandled record type: ${n}, deltaValue: ${s}, accValue: ${i}`);e[n]=i}return e}_addRun(e){return e}async _threadAssistantStream(e,t,n){return await this._createThreadAssistantStream(t,e,n)}async _runAssistantStream(e,t,n,s){return await this._createAssistantStream(t,e,n,s)}async _runToolAssistantStream(e,t,n,s){return await this._createToolAssistantStream(t,e,n,s)}};Pn=_r,io=function(e){if(!this.ended)switch(L(this,tu,e,"f"),x(this,Re,"m",sm).call(this,e),e.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":x(this,Re,"m",um).call(this,e);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":x(this,Re,"m",nm).call(this,e);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":x(this,Re,"m",rm).call(this,e);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier");default:}},oo=function(){if(this.ended)throw new N("stream has ended, this shouldn't happen");if(!x(this,En,"f"))throw Error("Final run has not been received");return x(this,En,"f")},rm=function(e){let[t,n]=x(this,Re,"m",om).call(this,e,x(this,St,"f"));L(this,St,t,"f"),x(this,eu,"f")[t.id]=t;for(let s of n){let i=t.content[s.index];i?.type=="text"&&this._emit("textCreated",i.text)}switch(e.event){case"thread.message.created":this._emit("messageCreated",e.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",e.data.delta,t),e.data.delta.content)for(let s of e.data.delta.content){if(s.type=="text"&&s.text){let i=s.text,o=t.content[s.index];if(o&&o.type=="text")this._emit("textDelta",i,o.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(s.index!=x(this,Ks,"f")){if(x(this,On,"f"))switch(x(this,On,"f").type){case"text":this._emit("textDone",x(this,On,"f").text,x(this,St,"f"));break;case"image_file":this._emit("imageFileDone",x(this,On,"f").image_file,x(this,St,"f"));break}L(this,Ks,s.index,"f")}L(this,On,t.content[s.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(x(this,Ks,"f")!==void 0){let s=e.data.content[x(this,Ks,"f")];if(s)switch(s.type){case"image_file":this._emit("imageFileDone",s.image_file,x(this,St,"f"));break;case"text":this._emit("textDone",s.text,x(this,St,"f"));break}}x(this,St,"f")&&this._emit("messageDone",e.data),L(this,St,void 0,"f")}},nm=function(e){let t=x(this,Re,"m",im).call(this,e);switch(L(this,ao,t,"f"),e.event){case"thread.run.step.created":this._emit("runStepCreated",e.data);break;case"thread.run.step.delta":let n=e.data.delta;if(n.step_details&&n.step_details.type=="tool_calls"&&n.step_details.tool_calls&&t.step_details.type=="tool_calls")for(let i of n.step_details.tool_calls)i.index==x(this,nu,"f")?this._emit("toolCallDelta",i,t.step_details.tool_calls[i.index]):(x(this,st,"f")&&this._emit("toolCallDone",x(this,st,"f")),L(this,nu,i.index,"f"),L(this,st,t.step_details.tool_calls[i.index],"f"),x(this,st,"f")&&this._emit("toolCallCreated",x(this,st,"f")));this._emit("runStepDelta",e.data.delta,t);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":L(this,ao,void 0,"f"),e.data.step_details.type=="tool_calls"&&x(this,st,"f")&&(this._emit("toolCallDone",x(this,st,"f")),L(this,st,void 0,"f")),this._emit("runStepDone",e.data,t);break;case"thread.run.step.in_progress":break}},sm=function(e){x(this,wp,"f").push(e),this._emit("event",e)},im=function(e){switch(e.event){case"thread.run.step.created":return x(this,rr,"f")[e.data.id]=e.data,e.data;case"thread.run.step.delta":let t=x(this,rr,"f")[e.data.id];if(!t)throw Error("Received a RunStepDelta before creation of a snapshot");let n=e.data;if(n.delta){let s=Pn.accumulateDelta(t,n.delta);x(this,rr,"f")[e.data.id]=s}return x(this,rr,"f")[e.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":x(this,rr,"f")[e.data.id]=e.data;break}if(x(this,rr,"f")[e.data.id])return x(this,rr,"f")[e.data.id];throw new Error("No snapshot available")},om=function(e,t){let n=[];switch(e.event){case"thread.message.created":return[e.data,n];case"thread.message.delta":if(!t)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let s=e.data;if(s.delta.content)for(let i of s.delta.content)if(i.index in t.content){let o=t.content[i.index];t.content[i.index]=x(this,Re,"m",am).call(this,i,o)}else t.content[i.index]=i,n.push(i);return[t,n];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(t)return[t,n];throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},am=function(e,t){return Pn.accumulateDelta(t,e)},um=function(e){switch(L(this,ru,e.data,"f"),e.event){case"thread.run.created":break;case"thread.run.queued":break;case"thread.run.in_progress":break;case"thread.run.requires_action":case"thread.run.cancelled":case"thread.run.failed":case"thread.run.completed":case"thread.run.expired":case"thread.run.incomplete":L(this,En,e.data,"f"),x(this,st,"f")&&(this._emit("toolCallDone",x(this,st,"f")),L(this,st,void 0,"f"));break;case"thread.run.cancelling":break}};var In=class extends I{constructor(){super(...arguments),this.steps=new Bs(this._client)}create(e,t,n){let{include:s,...i}=t;return this._client.post(O`/threads/${e}/runs`,{query:{include:s},body:i,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers]),stream:t.stream??!1})}retrieve(e,t,n){let{thread_id:s}=t;return this._client.get(O`/threads/${s}/runs/${e}`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}update(e,t,n){let{thread_id:s,...i}=t;return this._client.post(O`/threads/${s}/runs/${e}`,{body:i,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}list(e,t={},n){return this._client.getAPIList(O`/threads/${e}/runs`,W,{query:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}cancel(e,t,n){let{thread_id:s}=t;return this._client.post(O`/threads/${s}/runs/${e}/cancel`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}async createAndPoll(e,t,n){let s=await this.create(e,t,n);return await this.poll(s.id,{thread_id:e},n)}createAndStream(e,t,n){return _r.createAssistantStream(e,this._client.beta.threads.runs,t,n)}async poll(e,t,n){let s=R([n?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":n?.pollIntervalMs?.toString()??void 0}]);for(;;){let{data:i,response:o}=await this.retrieve(e,t,{...n,headers:{...n?.headers,...s}}).withResponse();switch(i.status){case"queued":case"in_progress":case"cancelling":let a=5e3;if(n?.pollIntervalMs)a=n.pollIntervalMs;else{let u=o.headers.get("openai-poll-after-ms");if(u){let c=parseInt(u);isNaN(c)||(a=c)}}await Yt(a);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return i}}}stream(e,t,n){return _r.createAssistantStream(e,this._client.beta.threads.runs,t,n)}submitToolOutputs(e,t,n){let{thread_id:s,...i}=t;return this._client.post(O`/threads/${s}/runs/${e}/submit_tool_outputs`,{body:i,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers]),stream:t.stream??!1})}async submitToolOutputsAndPoll(e,t,n){let s=await this.submitToolOutputs(e,t,n);return await this.poll(s.id,t,n)}submitToolOutputsStream(e,t,n){return _r.createToolAssistantStream(e,this._client.beta.threads.runs,t,n)}};In.Steps=Bs;var zr=class extends I{constructor(){super(...arguments),this.runs=new In(this._client),this.messages=new zs(this._client)}create(e={},t){return this._client.post("/threads",{body:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}retrieve(e,t){return this._client.get(O`/threads/${e}`,{...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}update(e,t,n){return this._client.post(O`/threads/${e}`,{body:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}delete(e,t){return this._client.delete(O`/threads/${e}`,{...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}createAndRun(e,t){return this._client.post("/threads/runs",{body:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers]),stream:e.stream??!1})}async createAndRunPoll(e,t){let n=await this.createAndRun(e,t);return await this.runs.poll(n.id,{thread_id:n.thread_id},t)}createAndRunStream(e,t){return _r.createThreadAssistantStream(e,this._client.beta.threads,t)}};zr.Runs=In;zr.Messages=zs;var nr=class extends I{constructor(){super(...arguments),this.realtime=new Ur(this._client),this.assistants=new Ls(this._client),this.threads=new zr(this._client)}};nr.Realtime=Ur;nr.Assistants=Ls;nr.Threads=zr;var kn=class extends I{create(e,t){return this._client.post("/completions",{body:e,...t,stream:e.stream??!1})}};var Ws=class extends I{retrieve(e,t,n){let{container_id:s}=t;return this._client.get(O`/containers/${s}/files/${e}/content`,{...n,headers:R([{Accept:"application/binary"},n?.headers]),__binaryResponse:!0})}};var Sn=class extends I{constructor(){super(...arguments),this.content=new Ws(this._client)}create(e,t,n){return this._client.post(O`/containers/${e}/files`,nt({body:t,...n},this._client))}retrieve(e,t,n){let{container_id:s}=t;return this._client.get(O`/containers/${s}/files/${e}`,n)}list(e,t={},n){return this._client.getAPIList(O`/containers/${e}/files`,W,{query:t,...n})}delete(e,t,n){let{container_id:s}=t;return this._client.delete(O`/containers/${s}/files/${e}`,{...n,headers:R([{Accept:"*/*"},n?.headers])})}};Sn.Content=Ws;var Br=class extends I{constructor(){super(...arguments),this.files=new Sn(this._client)}create(e,t){return this._client.post("/containers",{body:e,...t})}retrieve(e,t){return this._client.get(O`/containers/${e}`,t)}list(e={},t){return this._client.getAPIList("/containers",W,{query:e,...t})}delete(e,t){return this._client.delete(O`/containers/${e}`,{...t,headers:R([{Accept:"*/*"},t?.headers])})}};Br.Files=Sn;var Cn=class extends I{create(e,t){let n=!!e.encoding_format,s=n?e.encoding_format:"base64";n&&me(this._client).debug("embeddings/user defined encoding_format:",e.encoding_format);let i=this._client.post("/embeddings",{body:{...e,encoding_format:s},...t});return n?i:(me(this._client).debug("embeddings/decoding base64 embeddings from base64"),i._thenUnwrap(o=>(o&&o.data&&o.data.forEach(a=>{let u=a.embedding;a.embedding=tm(u)}),o)))}};var Hs=class extends I{retrieve(e,t,n){let{eval_id:s,run_id:i}=t;return this._client.get(O`/evals/${s}/runs/${i}/output_items/${e}`,n)}list(e,t,n){let{eval_id:s,...i}=t;return this._client.getAPIList(O`/evals/${s}/runs/${e}/output_items`,W,{query:i,...n})}};var Tn=class extends I{constructor(){super(...arguments),this.outputItems=new Hs(this._client)}create(e,t,n){return this._client.post(O`/evals/${e}/runs`,{body:t,...n})}retrieve(e,t,n){let{eval_id:s}=t;return this._client.get(O`/evals/${s}/runs/${e}`,n)}list(e,t={},n){return this._client.getAPIList(O`/evals/${e}/runs`,W,{query:t,...n})}delete(e,t,n){let{eval_id:s}=t;return this._client.delete(O`/evals/${s}/runs/${e}`,n)}cancel(e,t,n){let{eval_id:s}=t;return this._client.post(O`/evals/${s}/runs/${e}`,n)}};Tn.OutputItems=Hs;var Kr=class extends I{constructor(){super(...arguments),this.runs=new Tn(this._client)}create(e,t){return this._client.post("/evals",{body:e,...t})}retrieve(e,t){return this._client.get(O`/evals/${e}`,t)}update(e,t,n){return this._client.post(O`/evals/${e}`,{body:t,...n})}list(e={},t){return this._client.getAPIList("/evals",W,{query:e,...t})}delete(e,t){return this._client.delete(O`/evals/${e}`,t)}};Kr.Runs=Tn;var Rn=class extends I{create(e,t){return this._client.post("/files",nt({body:e,...t},this._client))}retrieve(e,t){return this._client.get(O`/files/${e}`,t)}list(e={},t){return this._client.getAPIList("/files",W,{query:e,...t})}delete(e,t){return this._client.delete(O`/files/${e}`,t)}content(e,t){return this._client.get(O`/files/${e}/content`,{...t,headers:R([{Accept:"application/binary"},t?.headers]),__binaryResponse:!0})}async waitForProcessing(e,{pollInterval:t=5e3,maxWait:n=1800*1e3}={}){let s=new Set(["processed","error","deleted"]),i=Date.now(),o=await this.retrieve(e);for(;!o.status||!s.has(o.status);)if(await Yt(t),o=await this.retrieve(e),Date.now()-i>n)throw new Jt({message:`Giving up on waiting for file ${e} to finish processing after ${n} milliseconds.`});return o}};var Vs=class extends I{};var Gs=class extends I{run(e,t){return this._client.post("/fine_tuning/alpha/graders/run",{body:e,...t})}validate(e,t){return this._client.post("/fine_tuning/alpha/graders/validate",{body:e,...t})}};var Nn=class extends I{constructor(){super(...arguments),this.graders=new Gs(this._client)}};Nn.Graders=Gs;var qs=class extends I{create(e,t,n){return this._client.getAPIList(O`/fine_tuning/checkpoints/${e}/permissions`,er,{body:t,method:"post",...n})}retrieve(e,t={},n){return this._client.get(O`/fine_tuning/checkpoints/${e}/permissions`,{query:t,...n})}delete(e,t,n){let{fine_tuned_model_checkpoint:s}=t;return this._client.delete(O`/fine_tuning/checkpoints/${s}/permissions/${e}`,n)}};var jn=class extends I{constructor(){super(...arguments),this.permissions=new qs(this._client)}};jn.Permissions=qs;var Js=class extends I{list(e,t={},n){return this._client.getAPIList(O`/fine_tuning/jobs/${e}/checkpoints`,W,{query:t,...n})}};var Mn=class extends I{constructor(){super(...arguments),this.checkpoints=new Js(this._client)}create(e,t){return this._client.post("/fine_tuning/jobs",{body:e,...t})}retrieve(e,t){return this._client.get(O`/fine_tuning/jobs/${e}`,t)}list(e={},t){return this._client.getAPIList("/fine_tuning/jobs",W,{query:e,...t})}cancel(e,t){return this._client.post(O`/fine_tuning/jobs/${e}/cancel`,t)}listEvents(e,t={},n){return this._client.getAPIList(O`/fine_tuning/jobs/${e}/events`,W,{query:t,...n})}pause(e,t){return this._client.post(O`/fine_tuning/jobs/${e}/pause`,t)}resume(e,t){return this._client.post(O`/fine_tuning/jobs/${e}/resume`,t)}};Mn.Checkpoints=Js;var Ct=class extends I{constructor(){super(...arguments),this.methods=new Vs(this._client),this.jobs=new Mn(this._client),this.checkpoints=new jn(this._client),this.alpha=new Nn(this._client)}};Ct.Methods=Vs;Ct.Jobs=Mn;Ct.Checkpoints=jn;Ct.Alpha=Nn;var Xs=class extends I{};var Wr=class extends I{constructor(){super(...arguments),this.graderModels=new Xs(this._client)}};Wr.GraderModels=Xs;var Dn=class extends I{createVariation(e,t){return this._client.post("/images/variations",nt({body:e,...t},this._client))}edit(e,t){return this._client.post("/images/edits",nt({body:e,...t,stream:e.stream??!1},this._client))}generate(e,t){return this._client.post("/images/generations",{body:e,...t,stream:e.stream??!1})}};var $n=class extends I{retrieve(e,t){return this._client.get(O`/models/${e}`,t)}list(e){return this._client.getAPIList("/models",er,e)}delete(e,t){return this._client.delete(O`/models/${e}`,t)}};var Ln=class extends I{create(e,t){return this._client.post("/moderations",{body:e,...t})}};function cm(r,e){return!e||!iw(e)?{...r,output_parsed:null,output:r.output.map(t=>t.type==="function_call"?{...t,parsed_arguments:null}:t.type==="message"?{...t,content:t.content.map(n=>({...n,parsed:null}))}:t)}:xp(r,e)}function xp(r,e){let t=r.output.map(s=>{if(s.type==="function_call")return{...s,parsed_arguments:uw(e,s)};if(s.type==="message"){let i=s.content.map(o=>o.type==="output_text"?{...o,parsed:sw(e,o.text)}:o);return{...s,content:i}}return s}),n=Object.assign({},r,{output:t});return Object.getOwnPropertyDescriptor(r,"output_text")||su(n),Object.defineProperty(n,"output_parsed",{enumerable:!0,get(){for(let s of n.output)if(s.type==="message"){for(let i of s.content)if(i.type==="output_text"&&i.parsed!==null)return i.parsed}return null}}),n}function sw(r,e){return r.text?.format?.type!=="json_schema"?null:"$parseRaw"in r.text?.format?(r.text?.format).$parseRaw(e):JSON.parse(e)}function iw(r){return!!Yi(r.text?.format)}function ow(r){return r?.$brand==="auto-parseable-tool"}function aw(r,e){return r.find(t=>t.type==="function"&&t.name===e)}function uw(r,e){let t=aw(r.tools??[],e.name);return{...e,...e,parsed_arguments:ow(t)?t.$parseRaw(e.arguments):t?.strict?JSON.parse(e.arguments):null}}function su(r){let e=[];for(let t of r.output)if(t.type==="message")for(let n of t.content)n.type==="output_text"&&e.push(n.text);r.output_text=e.join("")}var Ys,iu,Hr,ou,lm,pm,fm,hm,au=class r extends $r{constructor(e){super(),Ys.add(this),iu.set(this,void 0),Hr.set(this,void 0),ou.set(this,void 0),L(this,iu,e,"f")}static createResponse(e,t,n){let s=new r(t);return s._run(()=>s._createOrRetrieveResponse(e,t,{...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"stream"}})),s}async _createOrRetrieveResponse(e,t,n){let s=n?.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),x(this,Ys,"m",lm).call(this);let i,o=null;"response_id"in t?(i=await e.responses.retrieve(t.response_id,{stream:!0},{...n,signal:this.controller.signal,stream:!0}),o=t.starting_after??null):i=await e.responses.create({...t,stream:!0},{...n,signal:this.controller.signal}),this._connected();for await(let a of i)x(this,Ys,"m",pm).call(this,a,o);if(i.controller.signal?.aborted)throw new fe;return x(this,Ys,"m",fm).call(this)}[(iu=new WeakMap,Hr=new WeakMap,ou=new WeakMap,Ys=new WeakSet,lm=function(){this.ended||L(this,Hr,void 0,"f")},pm=function(t,n){if(this.ended)return;let s=(o,a)=>{(n==null||a.sequence_number>n)&&this._emit(o,a)},i=x(this,Ys,"m",hm).call(this,t);switch(s("event",t),t.type){case"response.output_text.delta":{let o=i.output[t.output_index];if(!o)throw new N(`missing output at index ${t.output_index}`);if(o.type==="message"){let a=o.content[t.content_index];if(!a)throw new N(`missing content at index ${t.content_index}`);if(a.type!=="output_text")throw new N(`expected content to be 'output_text', got ${a.type}`);s("response.output_text.delta",{...t,snapshot:a.text})}break}case"response.function_call_arguments.delta":{let o=i.output[t.output_index];if(!o)throw new N(`missing output at index ${t.output_index}`);o.type==="function_call"&&s("response.function_call_arguments.delta",{...t,snapshot:o.arguments});break}default:s(t.type,t);break}},fm=function(){if(this.ended)throw new N("stream has ended, this shouldn't happen");let t=x(this,Hr,"f");if(!t)throw new N("request ended without sending any events");L(this,Hr,void 0,"f");let n=cw(t,x(this,iu,"f"));return L(this,ou,n,"f"),n},hm=function(t){let n=x(this,Hr,"f");if(!n){if(t.type!=="response.created")throw new N(`When snapshot hasn't been set yet, expected 'response.created' event, got ${t.type}`);return n=L(this,Hr,t.response,"f"),n}switch(t.type){case"response.output_item.added":{n.output.push(t.item);break}case"response.content_part.added":{let s=n.output[t.output_index];if(!s)throw new N(`missing output at index ${t.output_index}`);s.type==="message"&&s.content.push(t.part);break}case"response.output_text.delta":{let s=n.output[t.output_index];if(!s)throw new N(`missing output at index ${t.output_index}`);if(s.type==="message"){let i=s.content[t.content_index];if(!i)throw new N(`missing content at index ${t.content_index}`);if(i.type!=="output_text")throw new N(`expected content to be 'output_text', got ${i.type}`);i.text+=t.delta}break}case"response.function_call_arguments.delta":{let s=n.output[t.output_index];if(!s)throw new N(`missing output at index ${t.output_index}`);s.type==="function_call"&&(s.arguments+=t.delta);break}case"response.completed":{L(this,Hr,t.response,"f");break}}return n},Symbol.asyncIterator)](){let e=[],t=[],n=!1;return this.on("event",s=>{let i=t.shift();i?i.resolve(s):e.push(s)}),this.on("end",()=>{n=!0;for(let s of t)s.resolve(void 0);t.length=0}),this.on("abort",s=>{n=!0;for(let i of t)i.reject(s);t.length=0}),this.on("error",s=>{n=!0;for(let i of t)i.reject(s);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((i,o)=>t.push({resolve:i,reject:o})).then(i=>i?{value:i,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}async finalResponse(){await this.done();let e=x(this,ou,"f");if(!e)throw new N("stream ended without producing a ChatCompletion");return e}};function cw(r,e){return cm(r,e)}var Zs=class extends I{list(e,t={},n){return this._client.getAPIList(O`/responses/${e}/input_items`,W,{query:t,...n})}};var Vr=class extends I{constructor(){super(...arguments),this.inputItems=new Zs(this._client)}create(e,t){return this._client.post("/responses",{body:e,...t,stream:e.stream??!1})._thenUnwrap(n=>("object"in n&&n.object==="response"&&su(n),n))}retrieve(e,t={},n){return this._client.get(O`/responses/${e}`,{query:t,...n,stream:t?.stream??!1})._thenUnwrap(s=>("object"in s&&s.object==="response"&&su(s),s))}delete(e,t){return this._client.delete(O`/responses/${e}`,{...t,headers:R([{Accept:"*/*"},t?.headers])})}parse(e,t){return this._client.responses.create(e,t)._thenUnwrap(n=>xp(n,e))}stream(e,t){return au.createResponse(this._client,e,t)}cancel(e,t){return this._client.post(O`/responses/${e}/cancel`,t)}};Vr.InputItems=Zs;var Qs=class extends I{create(e,t,n){return this._client.post(O`/uploads/${e}/parts`,nt({body:t,...n},this._client))}};var Gr=class extends I{constructor(){super(...arguments),this.parts=new Qs(this._client)}create(e,t){return this._client.post("/uploads",{body:e,...t})}cancel(e,t){return this._client.post(O`/uploads/${e}/cancel`,t)}complete(e,t,n){return this._client.post(O`/uploads/${e}/complete`,{body:t,...n})}};Gr.Parts=Qs;var dm=async r=>{let e=await Promise.allSettled(r),t=e.filter(s=>s.status==="rejected");if(t.length){for(let s of t)console.error(s.reason);throw new Error(`${t.length} promise(s) failed - see the above errors`)}let n=[];for(let s of e)s.status==="fulfilled"&&n.push(s.value);return n};var ei=class extends I{create(e,t,n){return this._client.post(O`/vector_stores/${e}/file_batches`,{body:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}retrieve(e,t,n){let{vector_store_id:s}=t;return this._client.get(O`/vector_stores/${s}/file_batches/${e}`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}cancel(e,t,n){let{vector_store_id:s}=t;return this._client.post(O`/vector_stores/${s}/file_batches/${e}/cancel`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}async createAndPoll(e,t,n){let s=await this.create(e,t);return await this.poll(e,s.id,n)}listFiles(e,t,n){let{vector_store_id:s,...i}=t;return this._client.getAPIList(O`/vector_stores/${s}/file_batches/${e}/files`,W,{query:i,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}async poll(e,t,n){let s=R([n?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":n?.pollIntervalMs?.toString()??void 0}]);for(;;){let{data:i,response:o}=await this.retrieve(t,{vector_store_id:e},{...n,headers:s}).withResponse();switch(i.status){case"in_progress":let a=5e3;if(n?.pollIntervalMs)a=n.pollIntervalMs;else{let u=o.headers.get("openai-poll-after-ms");if(u){let c=parseInt(u);isNaN(c)||(a=c)}}await Yt(a);break;case"failed":case"cancelled":case"completed":return i}}}async uploadAndPoll(e,{files:t,fileIds:n=[]},s){if(t==null||t.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");let i=s?.maxConcurrency??5,o=Math.min(i,t.length),a=this._client,u=t.values(),c=[...n];async function l(h){for(let f of h){let g=await a.files.create({file:f,purpose:"assistants"},s);c.push(g.id)}}let p=Array(o).fill(u).map(l);return await dm(p),await this.createAndPoll(e,{file_ids:c})}};var ti=class extends I{create(e,t,n){return this._client.post(O`/vector_stores/${e}/files`,{body:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}retrieve(e,t,n){let{vector_store_id:s}=t;return this._client.get(O`/vector_stores/${s}/files/${e}`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}update(e,t,n){let{vector_store_id:s,...i}=t;return this._client.post(O`/vector_stores/${s}/files/${e}`,{body:i,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}list(e,t={},n){return this._client.getAPIList(O`/vector_stores/${e}/files`,W,{query:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}delete(e,t,n){let{vector_store_id:s}=t;return this._client.delete(O`/vector_stores/${s}/files/${e}`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}async createAndPoll(e,t,n){let s=await this.create(e,t,n);return await this.poll(e,s.id,n)}async poll(e,t,n){let s=R([n?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":n?.pollIntervalMs?.toString()??void 0}]);for(;;){let i=await this.retrieve(t,{vector_store_id:e},{...n,headers:s}).withResponse(),o=i.data;switch(o.status){case"in_progress":let a=5e3;if(n?.pollIntervalMs)a=n.pollIntervalMs;else{let u=i.response.headers.get("openai-poll-after-ms");if(u){let c=parseInt(u);isNaN(c)||(a=c)}}await Yt(a);break;case"failed":case"completed":return o}}}async upload(e,t,n){let s=await this._client.files.create({file:t,purpose:"assistants"},n);return this.create(e,{file_id:s.id},n)}async uploadAndPoll(e,t,n){let s=await this.upload(e,t,n);return await this.poll(e,s.id,n)}content(e,t,n){let{vector_store_id:s}=t;return this._client.getAPIList(O`/vector_stores/${s}/files/${e}/content`,er,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}};var wr=class extends I{constructor(){super(...arguments),this.files=new ti(this._client),this.fileBatches=new ei(this._client)}create(e,t){return this._client.post("/vector_stores",{body:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}retrieve(e,t){return this._client.get(O`/vector_stores/${e}`,{...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}update(e,t,n){return this._client.post(O`/vector_stores/${e}`,{body:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}list(e={},t){return this._client.getAPIList("/vector_stores",W,{query:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}delete(e,t){return this._client.delete(O`/vector_stores/${e}`,{...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}search(e,t,n){return this._client.getAPIList(O`/vector_stores/${e}/search`,er,{body:t,method:"post",...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}};wr.Files=ti;wr.FileBatches=ei;var ri,mm,uu,Fn=class extends I{constructor(){super(...arguments),ri.add(this)}async unwrap(e,t,n=this._client.webhookSecret,s=300){return await this.verifySignature(e,t,n,s),JSON.parse(e)}async verifySignature(e,t,n=this._client.webhookSecret,s=300){if(typeof crypto>"u"||typeof crypto.subtle.importKey!="function"||typeof crypto.subtle.verify!="function")throw new Error("Webhook signature verification is only supported when the `crypto` global is defined");x(this,ri,"m",mm).call(this,n);let i=R([t]).values,o=x(this,ri,"m",uu).call(this,i,"webhook-signature"),a=x(this,ri,"m",uu).call(this,i,"webhook-timestamp"),u=x(this,ri,"m",uu).call(this,i,"webhook-id"),c=parseInt(a,10);if(isNaN(c))throw new Xt("Invalid webhook timestamp format");let l=Math.floor(Date.now()/1e3);if(l-c>s)throw new Xt("Webhook timestamp is too old");if(c>l+s)throw new Xt("Webhook timestamp is too new");let p=o.split(" ").map(b=>b.startsWith("v1,")?b.substring(3):b),h=n.startsWith("whsec_")?Buffer.from(n.replace("whsec_",""),"base64"):Buffer.from(n,"utf-8"),f=u?`${u}.${a}.${e}`:`${a}.${e}`,g=await crypto.subtle.importKey("raw",h,{name:"HMAC",hash:"SHA-256"},!1,["verify"]);for(let b of p)try{let _=Buffer.from(b,"base64");if(await crypto.subtle.verify("HMAC",g,_,new TextEncoder().encode(f)))return}catch{continue}throw new Xt("The given webhook signature does not match the expected signature")}};ri=new WeakSet,mm=function(e){if(typeof e!="string"||e.length===0)throw new Error("The webhook secret must either be set using the env var, OPENAI_WEBHOOK_SECRET, on the client class, OpenAI({ webhookSecret: '123' }), or passed to this function")},uu=function(e,t){if(!e)throw new Error("Headers are required");let n=e.get(t);if(n==null)throw new Error(`Missing required header: ${t}`);return n};var vp,Ap,cu,gm,U=class{constructor({baseURL:e=kt("OPENAI_BASE_URL"),apiKey:t=kt("OPENAI_API_KEY"),organization:n=kt("OPENAI_ORG_ID")??null,project:s=kt("OPENAI_PROJECT_ID")??null,webhookSecret:i=kt("OPENAI_WEBHOOK_SECRET")??null,...o}={}){if(vp.add(this),cu.set(this,void 0),this.completions=new kn(this),this.chat=new Fr(this),this.embeddings=new Cn(this),this.files=new Rn(this),this.images=new Dn(this),this.audio=new tr(this),this.moderations=new Ln(this),this.models=new $n(this),this.fineTuning=new Ct(this),this.graders=new Wr(this),this.vectorStores=new wr(this),this.webhooks=new Fn(this),this.beta=new nr(this),this.batches=new An(this),this.uploads=new Gr(this),this.responses=new Vr(this),this.evals=new Kr(this),this.containers=new Br(this),t===void 0)throw new N("The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' }).");let a={apiKey:t,organization:n,project:s,webhookSecret:i,...o,baseURL:e||"https://api.openai.com/v1"};if(!a.dangerouslyAllowBrowser&&Od())throw new N(`It looks like you're running in a browser-like environment.
111
109
 
112
110
  This is disabled by default, as it risks exposing your secret API credentials to attackers.
113
111
  If you understand the risks and have appropriate mitigations in place,
@@ -116,19 +114,19 @@ you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
116
114
  new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
117
115
 
118
116
  https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
119
- `);this.baseURL=a.baseURL,this.timeout=a.timeout??wp.DEFAULT_TIMEOUT,this.logger=a.logger??console;let u="warn";this.logLevel=u,this.logLevel=Jl(a.logLevel,"ClientOptions.logLevel",this)??Jl(kt("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??u,this.fetchOptions=a.fetchOptions,this.maxRetries=a.maxRetries??2,this.fetch=a.fetch??vd(),L(this,au,Od,"f"),this._options=a,this.apiKey=t,this.organization=n,this.project=s,this.webhookSecret=i}withOptions(e){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,organization:this.organization,project:this.project,webhookSecret:this.webhookSecret,...e})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:t}){}async authHeaders(e){return R([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(e){return Gl(e,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${jr}`}defaultIdempotencyKey(){return`stainless-node-retry-${Ll()}`}makeStatusError(e,t,n,s){return _e.generate(e,t,n,s)}buildURL(e,t,n){let s=!x(this,_p,"m",fm).call(this)&&n||this.baseURL,i=pd(e)?new URL(e):new URL(s+(s.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),o=this.defaultQuery();return hd(o)||(t={...o,...t}),typeof t=="object"&&t&&!Array.isArray(t)&&(i.search=this.stringifyQuery(t)),i.toString()}async prepareOptions(e){}async prepareRequest(e,{url:t,options:n}){}get(e,t){return this.methodRequest("get",e,t)}post(e,t){return this.methodRequest("post",e,t)}patch(e,t){return this.methodRequest("patch",e,t)}put(e,t){return this.methodRequest("put",e,t)}delete(e,t){return this.methodRequest("delete",e,t)}methodRequest(e,t,n){return this.request(Promise.resolve(n).then(s=>({method:e,path:t,...s})))}request(e,t=null){return new bn(this,this.makeRequest(e,t,void 0))}async makeRequest(e,t,n){let s=await e,i=s.maxRetries??this.maxRetries;t==null&&(t=i),await this.prepareOptions(s);let{req:o,url:a,timeout:u}=await this.buildRequest(s,{retryCount:i-t});await this.prepareRequest(o,{url:a,options:s});let c="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),l=n===void 0?"":`, retryOf: ${n}`,p=Date.now();if(me(this).debug(`[${c}] sending request`,dr({retryOfRequestLogID:n,method:s.method,url:a,options:s,headers:o.headers})),s.signal?.aborted)throw new fe;let h=new AbortController,f=await this.fetchWithTimeout(a,o,u,h).catch(Ki),g=Date.now();if(f instanceof Error){let I=`retrying, ${t} attempts remaining`;if(s.signal?.aborted)throw new fe;let v=Bi(f)||/timed? ?out/i.test(String(f)+("cause"in f?String(f.cause):""));if(t)return me(this).info(`[${c}] connection ${v?"timed out":"failed"} - ${I}`),me(this).debug(`[${c}] connection ${v?"timed out":"failed"} (${I})`,dr({retryOfRequestLogID:n,url:a,durationMs:g-p,message:f.message})),this.retryRequest(s,t,n??c);throw me(this).info(`[${c}] connection ${v?"timed out":"failed"} - error; no more retries left`),me(this).debug(`[${c}] connection ${v?"timed out":"failed"} (error; no more retries left)`,dr({retryOfRequestLogID:n,url:a,durationMs:g-p,message:f.message})),v?new Jt:new Nr({cause:f})}let b=[...f.headers.entries()].filter(([I])=>I==="x-request-id").map(([I,v])=>", "+I+": "+JSON.stringify(v)).join(""),_=`[${c}${l}${b}] ${o.method} ${a} ${f.ok?"succeeded":"failed"} with status ${f.status} in ${g-p}ms`;if(!f.ok){let I=await this.shouldRetry(f);if(t&&I){let D=`retrying, ${t} attempts remaining`;return await Ad(f.body),me(this).info(`${_} - ${D}`),me(this).debug(`[${c}] response error (${D})`,dr({retryOfRequestLogID:n,url:f.url,status:f.status,headers:f.headers,durationMs:g-p})),this.retryRequest(s,t,n??c,f.headers)}let v=I?"error; no more retries left":"error; not retryable";me(this).info(`${_} - ${v}`);let S=await f.text().catch(D=>Ki(D).message),C=gd(S),j=C?void 0:S;throw me(this).debug(`[${c}] response error (${v})`,dr({retryOfRequestLogID:n,url:f.url,status:f.status,headers:f.headers,message:j,durationMs:Date.now()-p})),this.makeStatusError(f.status,C,j,f.headers)}return me(this).info(_),me(this).debug(`[${c}] response start`,dr({retryOfRequestLogID:n,url:f.url,status:f.status,headers:f.headers,durationMs:g-p})),{response:f,options:s,controller:h,requestLogID:c,retryOfRequestLogID:n,startTime:p}}getAPIList(e,t,n){return this.requestAPIList(t,{method:"get",path:e,...n})}requestAPIList(e,t){let n=this.makeRequest(t,null,void 0);return new Gi(this,n,e)}async fetchWithTimeout(e,t,n,s){let{signal:i,method:o,...a}=t||{};i&&i.addEventListener("abort",()=>s.abort());let u=setTimeout(()=>s.abort(),n),c=globalThis.ReadableStream&&a.body instanceof globalThis.ReadableStream||typeof a.body=="object"&&a.body!==null&&Symbol.asyncIterator in a.body,l={signal:s.signal,...c?{duplex:"half"}:{},method:"GET",...a};o&&(l.method=o.toUpperCase());try{return await this.fetch.call(void 0,e,l)}finally{clearTimeout(u)}}async shouldRetry(e){let t=e.headers.get("x-should-retry");return t==="true"?!0:t==="false"?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,t,n,s){let i,o=s?.get("retry-after-ms");if(o){let u=parseFloat(o);Number.isNaN(u)||(i=u)}let a=s?.get("retry-after");if(a&&!i){let u=parseFloat(a);Number.isNaN(u)?i=Date.parse(a)-Date.now():i=u*1e3}if(!(i&&0<=i&&i<60*1e3)){let u=e.maxRetries??this.maxRetries;i=this.calculateDefaultRetryTimeoutMillis(t,u)}return await Yt(i),this.makeRequest(e,t-1,n)}calculateDefaultRetryTimeoutMillis(e,t){let i=t-e,o=Math.min(.5*Math.pow(2,i),8),a=1-Math.random()*.25;return o*a*1e3}async buildRequest(e,{retryCount:t=0}={}){let n={...e},{method:s,path:i,query:o,defaultBaseURL:a}=n,u=this.buildURL(i,o,a);"timeout"in n&&md("timeout",n.timeout),n.timeout=n.timeout??this.timeout;let{bodyHeaders:c,body:l}=this.buildBody({options:n}),p=await this.buildHeaders({options:e,method:s,bodyHeaders:c,retryCount:t});return{req:{method:s,headers:p,...n.signal&&{signal:n.signal},...globalThis.ReadableStream&&l instanceof globalThis.ReadableStream&&{duplex:"half"},...l&&{body:l},...this.fetchOptions??{},...n.fetchOptions??{}},url:u,timeout:n.timeout}}async buildHeaders({options:e,method:t,bodyHeaders:n,retryCount:s}){let i={};this.idempotencyHeader&&t!=="get"&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),i[this.idempotencyHeader]=e.idempotencyKey);let o=R([i,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(s),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...xd(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(e),this._options.defaultHeaders,n,e.headers]);return this.validateHeaders(o),o.values}buildBody({options:{body:e,headers:t}}){if(!e)return{bodyHeaders:void 0,body:void 0};let n=R([t]);return ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof DataView||typeof e=="string"&&n.values.has("content-type")||e instanceof Blob||e instanceof FormData||e instanceof URLSearchParams||globalThis.ReadableStream&&e instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:e}:typeof e=="object"&&(Symbol.asyncIterator in e||Symbol.iterator in e&&"next"in e&&typeof e.next=="function")?{bodyHeaders:void 0,body:ja(e)}:x(this,au,"f").call(this,{body:e,headers:n})}};wp=z,au=new WeakMap,_p=new WeakSet,fm=function(){return this.baseURL!=="https://api.openai.com/v1"};z.OpenAI=wp;z.DEFAULT_TIMEOUT=6e5;z.OpenAIError=N;z.APIError=_e;z.APIConnectionError=Nr;z.APIConnectionTimeoutError=Jt;z.APIUserAbortError=fe;z.NotFoundError=ws;z.ConflictError=xs;z.RateLimitError=As;z.BadRequestError=bs;z.AuthenticationError=ys;z.InternalServerError=Os;z.PermissionDeniedError=_s;z.UnprocessableEntityError=vs;z.InvalidWebhookSignatureError=Xt;z.toFile=Ji;z.Completions=En;z.Chat=$r;z.Embeddings=kn;z.Files=Cn;z.Images=jn;z.Audio=tr;z.Moderations=Dn;z.Models=Mn;z.FineTuning=Ct;z.Graders=Br;z.VectorStores=_r;z.Webhooks=$n;z.Beta=nr;z.Batches=xn;z.Uploads=Hr;z.Responses=Wr;z.Evals=zr;z.Containers=Ur;var Ln=class extends z{constructor({baseURL:e=kt("OPENAI_BASE_URL"),apiKey:t=kt("AZURE_OPENAI_API_KEY"),apiVersion:n=kt("OPENAI_API_VERSION"),endpoint:s,deployment:i,azureADTokenProvider:o,dangerouslyAllowBrowser:a,...u}={}){if(!n)throw new N("The OPENAI_API_VERSION environment variable is missing or empty; either provide it, or instantiate the AzureOpenAI client with an apiVersion option, like new AzureOpenAI({ apiVersion: 'My API Version' }).");if(typeof o=="function"&&(a=!0),!o&&!t)throw new N("Missing credentials. Please pass one of `apiKey` and `azureADTokenProvider`, or set the `AZURE_OPENAI_API_KEY` environment variable.");if(o&&t)throw new N("The `apiKey` and `azureADTokenProvider` arguments are mutually exclusive; only one can be passed at a time.");if(t??(t=hm),u.defaultQuery={...u.defaultQuery,"api-version":n},e){if(s)throw new N("baseURL and endpoint are mutually exclusive")}else{if(s||(s=process.env.AZURE_OPENAI_ENDPOINT),!s)throw new N("Must provide one of the `baseURL` or `endpoint` arguments, or the `AZURE_OPENAI_ENDPOINT` environment variable");e=`${s}/openai`}super({apiKey:t,baseURL:e,...u,...a!==void 0?{dangerouslyAllowBrowser:a}:{}}),this.apiVersion="",this._azureADTokenProvider=o,this.apiVersion=n,this.deploymentName=i}async buildRequest(e,t={}){if(cw.has(e.path)&&e.method==="post"&&e.body!==void 0){if(!Is(e.body))throw new Error("Expected request body to be an object");let n=this.deploymentName||e.body.model||e.__metadata?.model;n!==void 0&&!this.baseURL.includes("/deployments")&&(e.path=`/deployments/${n}${e.path}`)}return super.buildRequest(e,t)}async _getAzureADToken(){if(typeof this._azureADTokenProvider=="function"){let e=await this._azureADTokenProvider();if(!e||typeof e!="string")throw new N(`Expected 'azureADTokenProvider' argument to return a string but it returned ${e}`);return e}}async authHeaders(e){}async prepareOptions(e){if(e.headers=R([e.headers]),e.headers.values.get("Authorization")||e.headers.values.get("api-key"))return super.prepareOptions(e);let t=await this._getAzureADToken();if(t)e.headers.values.set("Authorization",`Bearer ${t}`);else if(this.apiKey!==hm)e.headers.values.set("api-key",this.apiKey);else throw new N("Unable to handle auth");return super.prepareOptions(e)}},cw=new Set(["/completions","/chat/completions","/embeddings","/audio/transcriptions","/audio/translations","/audio/speech","/images/generations","/batches","/images/edits"]),hm="<Missing Key>";function uu(r,e){if(r.function===void 0)return;let t;if(e?.partial)try{t=_o(r.function.arguments??"{}")}catch{return}else try{t=JSON.parse(r.function.arguments)}catch(s){throw new qe([`Function "${r.function.name}" arguments:`,"",r.function.arguments,"","are not valid JSON.",`Error: ${s.message}`].join(`
120
- `))}let n={name:r.function.name,args:t,type:"tool_call"};return e?.returnId&&(n.id=r.id),n}function dm(r){if(r.id===void 0)throw new Error('All OpenAI tool calls must have an "id" field.');return{id:r.id,type:"function",function:{name:r.name,arguments:JSON.stringify(r.args)}}}function cu(r,e){return{name:r.function?.name,args:r.function?.arguments,id:r.id,error:e,type:"invalid_tool_call"}}var xp=class extends ur{static lc_name(){return"JsonOutputToolsParser"}constructor(e){super(e),Object.defineProperty(this,"returnId",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","output_parsers","openai_tools"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),this.returnId=e?.returnId??this.returnId}_diff(){throw new Error("Not supported.")}async parse(){throw new Error("Not implemented.")}async parseResult(e){return await this.parsePartialResult(e,!1)}async parsePartialResult(e,t=!0){let n=e[0].message,s;if(jt(n)&&n.tool_calls?.length?s=n.tool_calls.map(o=>{let{id:a,...u}=o;return this.returnId?{id:a,...u}:u}):n.additional_kwargs.tool_calls!==void 0&&(s=JSON.parse(JSON.stringify(n.additional_kwargs.tool_calls)).map(a=>uu(a,{returnId:this.returnId,partial:t}))),!s)return[];let i=[];for(let o of s)if(o!==void 0){let a={type:o.name,args:o.args,id:o.id};i.push(a)}return i}},uo=class extends xp{static lc_name(){return"JsonOutputKeyToolsParser"}constructor(e){super(e),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","output_parsers","openai_tools"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"returnId",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"keyName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"returnSingle",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"zodSchema",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.keyName=e.keyName,this.returnSingle=e.returnSingle??this.returnSingle,this.zodSchema=e.zodSchema}async _validateResult(e){if(this.zodSchema===void 0)return e;let t=await Nu(this.zodSchema,e);if(t.success)return t.data;throw new qe(`Failed to parse. Text: "${JSON.stringify(e,null,2)}". Error: ${JSON.stringify(t.error?.issues)}`,JSON.stringify(e,null,2))}async parsePartialResult(e){let n=(await super.parsePartialResult(e)).filter(i=>i.type===this.keyName),s=n;if(n.length)return this.returnId||(s=n.map(i=>i.args)),this.returnSingle?s[0]:s}async parseResult(e){let n=(await super.parsePartialResult(e,!1)).filter(o=>o.type===this.keyName),s=n;return n.length?(this.returnId||(s=n.map(o=>o.args)),this.returnSingle?this._validateResult(s[0]):await Promise.all(s.map(o=>this._validateResult(o)))):void 0}};function Vr(r){let{azureOpenAIApiDeploymentName:e,azureOpenAIApiInstanceName:t,azureOpenAIApiKey:n,azureOpenAIBasePath:s,baseURL:i,azureADTokenProvider:o,azureOpenAIEndpoint:a}=r;if((n||o)&&s&&e)return`${s}/${e}`;if((n||o)&&a&&e)return`${a}/openai/deployments/${e}`;if(n||o){if(!t)throw new Error("azureOpenAIApiInstanceName is required when using azureOpenAIApiKey");if(!e)throw new Error("azureOpenAIApiDeploymentName is a required parameter when using azureOpenAIApiKey");return`https://${t}.openai.azure.com/openai/deployments/${e}`}return i}var gm=Symbol("Let zodToJsonSchema decide on which parser to use"),mm={name:void 0,$refStrategy:"root",effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",nullableStrategy:"from-target",removeAdditionalStrategy:"passthrough",definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"},bm=r=>typeof r=="string"?{...mm,basePath:["#"],definitions:{},name:r}:{...mm,basePath:["#"],definitions:{},...r};var co=r=>"_def"in r?r._def:r;function ym(r){if(!r)return!0;for(let e in r)return!1;return!0}var _m=r=>{let e=bm(r),t=e.name!==void 0?[...e.basePath,e.definitionPath,e.name]:e.basePath;return{...e,currentPath:t,propertyPath:void 0,seenRefs:new Set,seen:new Map(Object.entries(e.definitions).map(([n,s])=>[co(s),{def:co(s),path:[...e.basePath,e.definitionPath,n],jsonSchema:void 0}]))}};function vp(r,e,t,n){n?.errorMessages&&t&&(r.errorMessage={...r.errorMessage,[e]:t})}function Y(r,e,t,n,s){r[e]=t,vp(r,e,n,s)}function wm(){return{}}function xm(r,e){let t={type:"array"};return r.type?._def?.typeName!==B.ZodAny&&(t.items=U(r.type._def,{...e,currentPath:[...e.currentPath,"items"]})),r.minLength&&Y(t,"minItems",r.minLength.value,r.minLength.message,e),r.maxLength&&Y(t,"maxItems",r.maxLength.value,r.maxLength.message,e),r.exactLength&&(Y(t,"minItems",r.exactLength.value,r.exactLength.message,e),Y(t,"maxItems",r.exactLength.value,r.exactLength.message,e)),t}function vm(r,e){let t={type:"integer",format:"int64"};if(!r.checks)return t;for(let n of r.checks)switch(n.kind){case"min":e.target==="jsonSchema7"?n.inclusive?Y(t,"minimum",n.value,n.message,e):Y(t,"exclusiveMinimum",n.value,n.message,e):(n.inclusive||(t.exclusiveMinimum=!0),Y(t,"minimum",n.value,n.message,e));break;case"max":e.target==="jsonSchema7"?n.inclusive?Y(t,"maximum",n.value,n.message,e):Y(t,"exclusiveMaximum",n.value,n.message,e):(n.inclusive||(t.exclusiveMaximum=!0),Y(t,"maximum",n.value,n.message,e));break;case"multipleOf":Y(t,"multipleOf",n.value,n.message,e);break}return t}function Am(){return{type:"boolean"}}function Om(r,e){return U(r.type._def,e)}var Pm=(r,e)=>U(r.innerType._def,e);function Ap(r,e,t){let n=t??e.dateStrategy;if(Array.isArray(n))return{anyOf:n.map((s,i)=>Ap(r,e,s))};switch(n){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return lw(r,e)}}var lw=(r,e)=>{let t={type:"integer",format:"unix-time"};if(e.target==="openApi3")return t;for(let n of r.checks)switch(n.kind){case"min":Y(t,"minimum",n.value,n.message,e);break;case"max":Y(t,"maximum",n.value,n.message,e);break}return t};function Em(r,e){return{...U(r.innerType._def,e),default:r.defaultValue()}}function Im(r,e,t){return e.effectStrategy==="input"?U(r.schema._def,e,t):{}}function km(r){return{type:"string",enum:[...r.values]}}var pw=r=>"type"in r&&r.type==="string"?!1:"allOf"in r;function Sm(r,e){let t=[U(r.left._def,{...e,currentPath:[...e.currentPath,"allOf","0"]}),U(r.right._def,{...e,currentPath:[...e.currentPath,"allOf","1"]})].filter(i=>!!i),n=e.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,s=[];return t.forEach(i=>{if(pw(i))s.push(...i.allOf),i.unevaluatedProperties===void 0&&(n=void 0);else{let o=i;if("additionalProperties"in i&&i.additionalProperties===!1){let{additionalProperties:a,...u}=i;o=u}else n=void 0;s.push(o)}}),s.length?{allOf:s,...n}:void 0}function Cm(r,e){let t=typeof r.value;return t!=="bigint"&&t!=="number"&&t!=="boolean"&&t!=="string"?{type:Array.isArray(r.value)?"array":"object"}:e.target==="openApi3"?{type:t==="bigint"?"integer":t,enum:[r.value]}:{type:t==="bigint"?"integer":t,const:r.value}}var Op,Fn={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(Op===void 0&&(Op=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),Op),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/};function lu(r,e){let t={type:"string"};function n(s){return e.patternStrategy==="escape"?fw(s):s}if(r.checks)for(let s of r.checks)switch(s.kind){case"min":Y(t,"minLength",typeof t.minLength=="number"?Math.max(t.minLength,s.value):s.value,s.message,e);break;case"max":Y(t,"maxLength",typeof t.maxLength=="number"?Math.min(t.maxLength,s.value):s.value,s.message,e);break;case"email":switch(e.emailStrategy){case"format:email":Tt(t,"email",s.message,e);break;case"format:idn-email":Tt(t,"idn-email",s.message,e);break;case"pattern:zod":Rt(t,Fn.email,s.message,e);break}break;case"url":Tt(t,"uri",s.message,e);break;case"uuid":Tt(t,"uuid",s.message,e);break;case"regex":Rt(t,s.regex,s.message,e);break;case"cuid":Rt(t,Fn.cuid,s.message,e);break;case"cuid2":Rt(t,Fn.cuid2,s.message,e);break;case"startsWith":Rt(t,RegExp(`^${n(s.value)}`),s.message,e);break;case"endsWith":Rt(t,RegExp(`${n(s.value)}$`),s.message,e);break;case"datetime":Tt(t,"date-time",s.message,e);break;case"date":Tt(t,"date",s.message,e);break;case"time":Tt(t,"time",s.message,e);break;case"duration":Tt(t,"duration",s.message,e);break;case"length":Y(t,"minLength",typeof t.minLength=="number"?Math.max(t.minLength,s.value):s.value,s.message,e),Y(t,"maxLength",typeof t.maxLength=="number"?Math.min(t.maxLength,s.value):s.value,s.message,e);break;case"includes":{Rt(t,RegExp(n(s.value)),s.message,e);break}case"ip":{s.version!=="v6"&&Tt(t,"ipv4",s.message,e),s.version!=="v4"&&Tt(t,"ipv6",s.message,e);break}case"emoji":Rt(t,Fn.emoji,s.message,e);break;case"ulid":{Rt(t,Fn.ulid,s.message,e);break}case"base64":{switch(e.base64Strategy){case"format:binary":{Tt(t,"binary",s.message,e);break}case"contentEncoding:base64":{Y(t,"contentEncoding","base64",s.message,e);break}case"pattern:zod":{Rt(t,Fn.base64,s.message,e);break}}break}case"nanoid":Rt(t,Fn.nanoid,s.message,e);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return t}var fw=r=>Array.from(r).map(e=>/[a-zA-Z0-9]/.test(e)?e:`\\${e}`).join(""),Tt=(r,e,t,n)=>{r.format||r.anyOf?.some(s=>s.format)?(r.anyOf||(r.anyOf=[]),r.format&&(r.anyOf.push({format:r.format,...r.errorMessage&&n.errorMessages&&{errorMessage:{format:r.errorMessage.format}}}),delete r.format,r.errorMessage&&(delete r.errorMessage.format,Object.keys(r.errorMessage).length===0&&delete r.errorMessage)),r.anyOf.push({format:e,...t&&n.errorMessages&&{errorMessage:{format:t}}})):Y(r,"format",e,t,n)},Rt=(r,e,t,n)=>{r.pattern||r.allOf?.some(s=>s.pattern)?(r.allOf||(r.allOf=[]),r.pattern&&(r.allOf.push({pattern:r.pattern,...r.errorMessage&&n.errorMessages&&{errorMessage:{pattern:r.errorMessage.pattern}}}),delete r.pattern,r.errorMessage&&(delete r.errorMessage.pattern,Object.keys(r.errorMessage).length===0&&delete r.errorMessage)),r.allOf.push({pattern:Tm(e,n),...t&&n.errorMessages&&{errorMessage:{pattern:t}}})):Y(r,"pattern",Tm(e,n),t,n)},Tm=(r,e)=>{let t=typeof r=="function"?r():r;if(!e.applyRegexFlags||!t.flags)return t.source;let n={i:t.flags.includes("i"),m:t.flags.includes("m"),s:t.flags.includes("s")},s=n.i?t.source.toLowerCase():t.source,i="",o=!1,a=!1,u=!1;for(let c=0;c<s.length;c++){if(o){i+=s[c],o=!1;continue}if(n.i){if(a){if(s[c].match(/[a-z]/)){u?(i+=s[c],i+=`${s[c-2]}-${s[c]}`.toUpperCase(),u=!1):s[c+1]==="-"&&s[c+2]?.match(/[a-z]/)?(i+=s[c],u=!0):i+=`${s[c]}${s[c].toUpperCase()}`;continue}}else if(s[c].match(/[a-z]/)){i+=`[${s[c]}${s[c].toUpperCase()}]`;continue}}if(n.m){if(s[c]==="^"){i+=`(^|(?<=[\r
117
+ `);this.baseURL=a.baseURL,this.timeout=a.timeout??Ap.DEFAULT_TIMEOUT,this.logger=a.logger??console;let u="warn";this.logLevel=u,this.logLevel=Zl(a.logLevel,"ClientOptions.logLevel",this)??Zl(kt("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??u,this.fetchOptions=a.fetchOptions,this.maxRetries=a.maxRetries??2,this.fetch=a.fetch??Ed(),L(this,cu,kd,"f"),this._options=a,this.apiKey=t,this.organization=n,this.project=s,this.webhookSecret=i}withOptions(e){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,organization:this.organization,project:this.project,webhookSecret:this.webhookSecret,...e})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:t}){}async authHeaders(e){return R([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(e){return Xl(e,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${Dr}`}defaultIdempotencyKey(){return`stainless-node-retry-${zl()}`}makeStatusError(e,t,n,s){return _e.generate(e,t,n,s)}buildURL(e,t,n){let s=!x(this,vp,"m",gm).call(this)&&n||this.baseURL,i=md(e)?new URL(e):new URL(s+(s.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),o=this.defaultQuery();return bd(o)||(t={...o,...t}),typeof t=="object"&&t&&!Array.isArray(t)&&(i.search=this.stringifyQuery(t)),i.toString()}async prepareOptions(e){}async prepareRequest(e,{url:t,options:n}){}get(e,t){return this.methodRequest("get",e,t)}post(e,t){return this.methodRequest("post",e,t)}patch(e,t){return this.methodRequest("patch",e,t)}put(e,t){return this.methodRequest("put",e,t)}delete(e,t){return this.methodRequest("delete",e,t)}methodRequest(e,t,n){return this.request(Promise.resolve(n).then(s=>({method:e,path:t,...s})))}request(e,t=null){return new _n(this,this.makeRequest(e,t,void 0))}async makeRequest(e,t,n){let s=await e,i=s.maxRetries??this.maxRetries;t==null&&(t=i),await this.prepareOptions(s);let{req:o,url:a,timeout:u}=await this.buildRequest(s,{retryCount:i-t});await this.prepareRequest(o,{url:a,options:s});let c="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),l=n===void 0?"":`, retryOf: ${n}`,p=Date.now();if(me(this).debug(`[${c}] sending request`,mr({retryOfRequestLogID:n,method:s.method,url:a,options:s,headers:o.headers})),s.signal?.aborted)throw new fe;let h=new AbortController,f=await this.fetchWithTimeout(a,o,u,h).catch(Ki),g=Date.now();if(f instanceof Error){let P=`retrying, ${t} attempts remaining`;if(s.signal?.aborted)throw new fe;let v=Bi(f)||/timed? ?out/i.test(String(f)+("cause"in f?String(f.cause):""));if(t)return me(this).info(`[${c}] connection ${v?"timed out":"failed"} - ${P}`),me(this).debug(`[${c}] connection ${v?"timed out":"failed"} (${P})`,mr({retryOfRequestLogID:n,url:a,durationMs:g-p,message:f.message})),this.retryRequest(s,t,n??c);throw me(this).info(`[${c}] connection ${v?"timed out":"failed"} - error; no more retries left`),me(this).debug(`[${c}] connection ${v?"timed out":"failed"} (error; no more retries left)`,mr({retryOfRequestLogID:n,url:a,durationMs:g-p,message:f.message})),v?new Jt:new Mr({cause:f})}let b=[...f.headers.entries()].filter(([P])=>P==="x-request-id").map(([P,v])=>", "+P+": "+JSON.stringify(v)).join(""),_=`[${c}${l}${b}] ${o.method} ${a} ${f.ok?"succeeded":"failed"} with status ${f.status} in ${g-p}ms`;if(!f.ok){let P=await this.shouldRetry(f);if(t&&P){let D=`retrying, ${t} attempts remaining`;return await Id(f.body),me(this).info(`${_} - ${D}`),me(this).debug(`[${c}] response error (${D})`,mr({retryOfRequestLogID:n,url:f.url,status:f.status,headers:f.headers,durationMs:g-p})),this.retryRequest(s,t,n??c,f.headers)}let v=P?"error; no more retries left":"error; not retryable";me(this).info(`${_} - ${v}`);let S=await f.text().catch(D=>Ki(D).message),C=wd(S),j=C?void 0:S;throw me(this).debug(`[${c}] response error (${v})`,mr({retryOfRequestLogID:n,url:f.url,status:f.status,headers:f.headers,message:j,durationMs:Date.now()-p})),this.makeStatusError(f.status,C,j,f.headers)}return me(this).info(_),me(this).debug(`[${c}] response start`,mr({retryOfRequestLogID:n,url:f.url,status:f.status,headers:f.headers,durationMs:g-p})),{response:f,options:s,controller:h,requestLogID:c,retryOfRequestLogID:n,startTime:p}}getAPIList(e,t,n){return this.requestAPIList(t,{method:"get",path:e,...n})}requestAPIList(e,t){let n=this.makeRequest(t,null,void 0);return new Gi(this,n,e)}async fetchWithTimeout(e,t,n,s){let{signal:i,method:o,...a}=t||{};i&&i.addEventListener("abort",()=>s.abort());let u=setTimeout(()=>s.abort(),n),c=globalThis.ReadableStream&&a.body instanceof globalThis.ReadableStream||typeof a.body=="object"&&a.body!==null&&Symbol.asyncIterator in a.body,l={signal:s.signal,...c?{duplex:"half"}:{},method:"GET",...a};o&&(l.method=o.toUpperCase());try{return await this.fetch.call(void 0,e,l)}finally{clearTimeout(u)}}async shouldRetry(e){let t=e.headers.get("x-should-retry");return t==="true"?!0:t==="false"?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,t,n,s){let i,o=s?.get("retry-after-ms");if(o){let u=parseFloat(o);Number.isNaN(u)||(i=u)}let a=s?.get("retry-after");if(a&&!i){let u=parseFloat(a);Number.isNaN(u)?i=Date.parse(a)-Date.now():i=u*1e3}if(!(i&&0<=i&&i<60*1e3)){let u=e.maxRetries??this.maxRetries;i=this.calculateDefaultRetryTimeoutMillis(t,u)}return await Yt(i),this.makeRequest(e,t-1,n)}calculateDefaultRetryTimeoutMillis(e,t){let i=t-e,o=Math.min(.5*Math.pow(2,i),8),a=1-Math.random()*.25;return o*a*1e3}async buildRequest(e,{retryCount:t=0}={}){let n={...e},{method:s,path:i,query:o,defaultBaseURL:a}=n,u=this.buildURL(i,o,a);"timeout"in n&&_d("timeout",n.timeout),n.timeout=n.timeout??this.timeout;let{bodyHeaders:c,body:l}=this.buildBody({options:n}),p=await this.buildHeaders({options:e,method:s,bodyHeaders:c,retryCount:t});return{req:{method:s,headers:p,...n.signal&&{signal:n.signal},...globalThis.ReadableStream&&l instanceof globalThis.ReadableStream&&{duplex:"half"},...l&&{body:l},...this.fetchOptions??{},...n.fetchOptions??{}},url:u,timeout:n.timeout}}async buildHeaders({options:e,method:t,bodyHeaders:n,retryCount:s}){let i={};this.idempotencyHeader&&t!=="get"&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),i[this.idempotencyHeader]=e.idempotencyKey);let o=R([i,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(s),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...Pd(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(e),this._options.defaultHeaders,n,e.headers]);return this.validateHeaders(o),o.values}buildBody({options:{body:e,headers:t}}){if(!e)return{bodyHeaders:void 0,body:void 0};let n=R([t]);return ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof DataView||typeof e=="string"&&n.values.has("content-type")||e instanceof Blob||e instanceof FormData||e instanceof URLSearchParams||globalThis.ReadableStream&&e instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:e}:typeof e=="object"&&(Symbol.asyncIterator in e||Symbol.iterator in e&&"next"in e&&typeof e.next=="function")?{bodyHeaders:void 0,body:Da(e)}:x(this,cu,"f").call(this,{body:e,headers:n})}};Ap=U,cu=new WeakMap,vp=new WeakSet,gm=function(){return this.baseURL!=="https://api.openai.com/v1"};U.OpenAI=Ap;U.DEFAULT_TIMEOUT=6e5;U.OpenAIError=N;U.APIError=_e;U.APIConnectionError=Mr;U.APIConnectionTimeoutError=Jt;U.APIUserAbortError=fe;U.NotFoundError=xs;U.ConflictError=vs;U.RateLimitError=Os;U.BadRequestError=ys;U.AuthenticationError=_s;U.InternalServerError=Ps;U.PermissionDeniedError=ws;U.UnprocessableEntityError=As;U.InvalidWebhookSignatureError=Xt;U.toFile=Ji;U.Completions=kn;U.Chat=Fr;U.Embeddings=Cn;U.Files=Rn;U.Images=Dn;U.Audio=tr;U.Moderations=Ln;U.Models=$n;U.FineTuning=Ct;U.Graders=Wr;U.VectorStores=wr;U.Webhooks=Fn;U.Beta=nr;U.Batches=An;U.Uploads=Gr;U.Responses=Vr;U.Evals=Kr;U.Containers=Br;var qr=class extends U{constructor({baseURL:e=kt("OPENAI_BASE_URL"),apiKey:t=kt("AZURE_OPENAI_API_KEY"),apiVersion:n=kt("OPENAI_API_VERSION"),endpoint:s,deployment:i,azureADTokenProvider:o,dangerouslyAllowBrowser:a,...u}={}){if(!n)throw new N("The OPENAI_API_VERSION environment variable is missing or empty; either provide it, or instantiate the AzureOpenAI client with an apiVersion option, like new AzureOpenAI({ apiVersion: 'My API Version' }).");if(typeof o=="function"&&(a=!0),!o&&!t)throw new N("Missing credentials. Please pass one of `apiKey` and `azureADTokenProvider`, or set the `AZURE_OPENAI_API_KEY` environment variable.");if(o&&t)throw new N("The `apiKey` and `azureADTokenProvider` arguments are mutually exclusive; only one can be passed at a time.");if(t??(t=bm),u.defaultQuery={...u.defaultQuery,"api-version":n},e){if(s)throw new N("baseURL and endpoint are mutually exclusive")}else{if(s||(s=process.env.AZURE_OPENAI_ENDPOINT),!s)throw new N("Must provide one of the `baseURL` or `endpoint` arguments, or the `AZURE_OPENAI_ENDPOINT` environment variable");e=`${s}/openai`}super({apiKey:t,baseURL:e,...u,...a!==void 0?{dangerouslyAllowBrowser:a}:{}}),this.apiVersion="",this._azureADTokenProvider=o,this.apiVersion=n,this.deploymentName=i}async buildRequest(e,t={}){if(mw.has(e.path)&&e.method==="post"&&e.body!==void 0){if(!ks(e.body))throw new Error("Expected request body to be an object");let n=this.deploymentName||e.body.model||e.__metadata?.model;n!==void 0&&!this.baseURL.includes("/deployments")&&(e.path=`/deployments/${n}${e.path}`)}return super.buildRequest(e,t)}async _getAzureADToken(){if(typeof this._azureADTokenProvider=="function"){let e=await this._azureADTokenProvider();if(!e||typeof e!="string")throw new N(`Expected 'azureADTokenProvider' argument to return a string but it returned ${e}`);return e}}async authHeaders(e){}async prepareOptions(e){if(e.headers=R([e.headers]),e.headers.values.get("Authorization")||e.headers.values.get("api-key"))return super.prepareOptions(e);let t=await this._getAzureADToken();if(t)e.headers.values.set("Authorization",`Bearer ${t}`);else if(this.apiKey!==bm)e.headers.values.set("api-key",this.apiKey);else throw new N("Unable to handle auth");return super.prepareOptions(e)}},mw=new Set(["/completions","/chat/completions","/embeddings","/audio/transcriptions","/audio/translations","/audio/speech","/images/generations","/batches","/images/edits"]),bm="<Missing Key>";function lu(r,e){if(r.function===void 0)return;let t;if(e?.partial)try{t=wo(r.function.arguments??"{}")}catch{return}else try{t=JSON.parse(r.function.arguments)}catch(s){throw new qe([`Function "${r.function.name}" arguments:`,"",r.function.arguments,"","are not valid JSON.",`Error: ${s.message}`].join(`
118
+ `))}let n={name:r.function.name,args:t,type:"tool_call"};return e?.returnId&&(n.id=r.id),n}function ym(r){if(r.id===void 0)throw new Error('All OpenAI tool calls must have an "id" field.');return{id:r.id,type:"function",function:{name:r.name,arguments:JSON.stringify(r.args)}}}function pu(r,e){return{name:r.function?.name,args:r.function?.arguments,id:r.id,error:e,type:"invalid_tool_call"}}var Op=class extends cr{static lc_name(){return"JsonOutputToolsParser"}constructor(e){super(e),Object.defineProperty(this,"returnId",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","output_parsers","openai_tools"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),this.returnId=e?.returnId??this.returnId}_diff(){throw new Error("Not supported.")}async parse(){throw new Error("Not implemented.")}async parseResult(e){return await this.parsePartialResult(e,!1)}async parsePartialResult(e,t=!0){let n=e[0].message,s;if(jt(n)&&n.tool_calls?.length?s=n.tool_calls.map(o=>{let{id:a,...u}=o;return this.returnId?{id:a,...u}:u}):n.additional_kwargs.tool_calls!==void 0&&(s=JSON.parse(JSON.stringify(n.additional_kwargs.tool_calls)).map(a=>lu(a,{returnId:this.returnId,partial:t}))),!s)return[];let i=[];for(let o of s)if(o!==void 0){let a={type:o.name,args:o.args,id:o.id};i.push(a)}return i}},uo=class extends Op{static lc_name(){return"JsonOutputKeyToolsParser"}constructor(e){super(e),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","output_parsers","openai_tools"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"returnId",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"keyName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"returnSingle",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"zodSchema",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.keyName=e.keyName,this.returnSingle=e.returnSingle??this.returnSingle,this.zodSchema=e.zodSchema}async _validateResult(e){if(this.zodSchema===void 0)return e;let t=await $u(this.zodSchema,e);if(t.success)return t.data;throw new qe(`Failed to parse. Text: "${JSON.stringify(e,null,2)}". Error: ${JSON.stringify(t.error?.issues)}`,JSON.stringify(e,null,2))}async parsePartialResult(e){let n=(await super.parsePartialResult(e)).filter(i=>i.type===this.keyName),s=n;if(n.length)return this.returnId||(s=n.map(i=>i.args)),this.returnSingle?s[0]:s}async parseResult(e){let n=(await super.parsePartialResult(e,!1)).filter(o=>o.type===this.keyName),s=n;return n.length?(this.returnId||(s=n.map(o=>o.args)),this.returnSingle?this._validateResult(s[0]):await Promise.all(s.map(o=>this._validateResult(o)))):void 0}};function sr(r){let{azureOpenAIApiDeploymentName:e,azureOpenAIApiInstanceName:t,azureOpenAIApiKey:n,azureOpenAIBasePath:s,baseURL:i,azureADTokenProvider:o,azureOpenAIEndpoint:a}=r;if((n||o)&&s&&e)return`${s}/${e}`;if((n||o)&&a&&e)return`${a}/openai/deployments/${e}`;if(n||o){if(!t)throw new Error("azureOpenAIApiInstanceName is required when using azureOpenAIApiKey");if(!e)throw new Error("azureOpenAIApiDeploymentName is a required parameter when using azureOpenAIApiKey");return`https://${t}.openai.azure.com/openai/deployments/${e}`}return i}var wm=Symbol("Let zodToJsonSchema decide on which parser to use"),_m={name:void 0,$refStrategy:"root",effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",nullableStrategy:"from-target",removeAdditionalStrategy:"passthrough",definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"},xm=r=>typeof r=="string"?{..._m,basePath:["#"],definitions:{},name:r}:{..._m,basePath:["#"],definitions:{},...r};var co=r=>"_def"in r?r._def:r;function vm(r){if(!r)return!0;for(let e in r)return!1;return!0}var Am=r=>{let e=xm(r),t=e.name!==void 0?[...e.basePath,e.definitionPath,e.name]:e.basePath;return{...e,currentPath:t,propertyPath:void 0,seenRefs:new Set,seen:new Map(Object.entries(e.definitions).map(([n,s])=>[co(s),{def:co(s),path:[...e.basePath,e.definitionPath,n],jsonSchema:void 0}]))}};function Pp(r,e,t,n){n?.errorMessages&&t&&(r.errorMessage={...r.errorMessage,[e]:t})}function Y(r,e,t,n,s){r[e]=t,Pp(r,e,n,s)}function Om(){return{}}function Pm(r,e){let t={type:"array"};return r.type?._def?.typeName!==B.ZodAny&&(t.items=z(r.type._def,{...e,currentPath:[...e.currentPath,"items"]})),r.minLength&&Y(t,"minItems",r.minLength.value,r.minLength.message,e),r.maxLength&&Y(t,"maxItems",r.maxLength.value,r.maxLength.message,e),r.exactLength&&(Y(t,"minItems",r.exactLength.value,r.exactLength.message,e),Y(t,"maxItems",r.exactLength.value,r.exactLength.message,e)),t}function Em(r,e){let t={type:"integer",format:"int64"};if(!r.checks)return t;for(let n of r.checks)switch(n.kind){case"min":e.target==="jsonSchema7"?n.inclusive?Y(t,"minimum",n.value,n.message,e):Y(t,"exclusiveMinimum",n.value,n.message,e):(n.inclusive||(t.exclusiveMinimum=!0),Y(t,"minimum",n.value,n.message,e));break;case"max":e.target==="jsonSchema7"?n.inclusive?Y(t,"maximum",n.value,n.message,e):Y(t,"exclusiveMaximum",n.value,n.message,e):(n.inclusive||(t.exclusiveMaximum=!0),Y(t,"maximum",n.value,n.message,e));break;case"multipleOf":Y(t,"multipleOf",n.value,n.message,e);break}return t}function Im(){return{type:"boolean"}}function km(r,e){return z(r.type._def,e)}var Sm=(r,e)=>z(r.innerType._def,e);function Ep(r,e,t){let n=t??e.dateStrategy;if(Array.isArray(n))return{anyOf:n.map((s,i)=>Ep(r,e,s))};switch(n){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return gw(r,e)}}var gw=(r,e)=>{let t={type:"integer",format:"unix-time"};if(e.target==="openApi3")return t;for(let n of r.checks)switch(n.kind){case"min":Y(t,"minimum",n.value,n.message,e);break;case"max":Y(t,"maximum",n.value,n.message,e);break}return t};function Cm(r,e){return{...z(r.innerType._def,e),default:r.defaultValue()}}function Tm(r,e,t){return e.effectStrategy==="input"?z(r.schema._def,e,t):{}}function Rm(r){return{type:"string",enum:[...r.values]}}var bw=r=>"type"in r&&r.type==="string"?!1:"allOf"in r;function Nm(r,e){let t=[z(r.left._def,{...e,currentPath:[...e.currentPath,"allOf","0"]}),z(r.right._def,{...e,currentPath:[...e.currentPath,"allOf","1"]})].filter(i=>!!i),n=e.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,s=[];return t.forEach(i=>{if(bw(i))s.push(...i.allOf),i.unevaluatedProperties===void 0&&(n=void 0);else{let o=i;if("additionalProperties"in i&&i.additionalProperties===!1){let{additionalProperties:a,...u}=i;o=u}else n=void 0;s.push(o)}}),s.length?{allOf:s,...n}:void 0}function jm(r,e){let t=typeof r.value;return t!=="bigint"&&t!=="number"&&t!=="boolean"&&t!=="string"?{type:Array.isArray(r.value)?"array":"object"}:e.target==="openApi3"?{type:t==="bigint"?"integer":t,enum:[r.value]}:{type:t==="bigint"?"integer":t,const:r.value}}var Ip,Un={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(Ip===void 0&&(Ip=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),Ip),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/};function fu(r,e){let t={type:"string"};function n(s){return e.patternStrategy==="escape"?yw(s):s}if(r.checks)for(let s of r.checks)switch(s.kind){case"min":Y(t,"minLength",typeof t.minLength=="number"?Math.max(t.minLength,s.value):s.value,s.message,e);break;case"max":Y(t,"maxLength",typeof t.maxLength=="number"?Math.min(t.maxLength,s.value):s.value,s.message,e);break;case"email":switch(e.emailStrategy){case"format:email":Tt(t,"email",s.message,e);break;case"format:idn-email":Tt(t,"idn-email",s.message,e);break;case"pattern:zod":Rt(t,Un.email,s.message,e);break}break;case"url":Tt(t,"uri",s.message,e);break;case"uuid":Tt(t,"uuid",s.message,e);break;case"regex":Rt(t,s.regex,s.message,e);break;case"cuid":Rt(t,Un.cuid,s.message,e);break;case"cuid2":Rt(t,Un.cuid2,s.message,e);break;case"startsWith":Rt(t,RegExp(`^${n(s.value)}`),s.message,e);break;case"endsWith":Rt(t,RegExp(`${n(s.value)}$`),s.message,e);break;case"datetime":Tt(t,"date-time",s.message,e);break;case"date":Tt(t,"date",s.message,e);break;case"time":Tt(t,"time",s.message,e);break;case"duration":Tt(t,"duration",s.message,e);break;case"length":Y(t,"minLength",typeof t.minLength=="number"?Math.max(t.minLength,s.value):s.value,s.message,e),Y(t,"maxLength",typeof t.maxLength=="number"?Math.min(t.maxLength,s.value):s.value,s.message,e);break;case"includes":{Rt(t,RegExp(n(s.value)),s.message,e);break}case"ip":{s.version!=="v6"&&Tt(t,"ipv4",s.message,e),s.version!=="v4"&&Tt(t,"ipv6",s.message,e);break}case"emoji":Rt(t,Un.emoji,s.message,e);break;case"ulid":{Rt(t,Un.ulid,s.message,e);break}case"base64":{switch(e.base64Strategy){case"format:binary":{Tt(t,"binary",s.message,e);break}case"contentEncoding:base64":{Y(t,"contentEncoding","base64",s.message,e);break}case"pattern:zod":{Rt(t,Un.base64,s.message,e);break}}break}case"nanoid":Rt(t,Un.nanoid,s.message,e);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return t}var yw=r=>Array.from(r).map(e=>/[a-zA-Z0-9]/.test(e)?e:`\\${e}`).join(""),Tt=(r,e,t,n)=>{r.format||r.anyOf?.some(s=>s.format)?(r.anyOf||(r.anyOf=[]),r.format&&(r.anyOf.push({format:r.format,...r.errorMessage&&n.errorMessages&&{errorMessage:{format:r.errorMessage.format}}}),delete r.format,r.errorMessage&&(delete r.errorMessage.format,Object.keys(r.errorMessage).length===0&&delete r.errorMessage)),r.anyOf.push({format:e,...t&&n.errorMessages&&{errorMessage:{format:t}}})):Y(r,"format",e,t,n)},Rt=(r,e,t,n)=>{r.pattern||r.allOf?.some(s=>s.pattern)?(r.allOf||(r.allOf=[]),r.pattern&&(r.allOf.push({pattern:r.pattern,...r.errorMessage&&n.errorMessages&&{errorMessage:{pattern:r.errorMessage.pattern}}}),delete r.pattern,r.errorMessage&&(delete r.errorMessage.pattern,Object.keys(r.errorMessage).length===0&&delete r.errorMessage)),r.allOf.push({pattern:Mm(e,n),...t&&n.errorMessages&&{errorMessage:{pattern:t}}})):Y(r,"pattern",Mm(e,n),t,n)},Mm=(r,e)=>{let t=typeof r=="function"?r():r;if(!e.applyRegexFlags||!t.flags)return t.source;let n={i:t.flags.includes("i"),m:t.flags.includes("m"),s:t.flags.includes("s")},s=n.i?t.source.toLowerCase():t.source,i="",o=!1,a=!1,u=!1;for(let c=0;c<s.length;c++){if(o){i+=s[c],o=!1;continue}if(n.i){if(a){if(s[c].match(/[a-z]/)){u?(i+=s[c],i+=`${s[c-2]}-${s[c]}`.toUpperCase(),u=!1):s[c+1]==="-"&&s[c+2]?.match(/[a-z]/)?(i+=s[c],u=!0):i+=`${s[c]}${s[c].toUpperCase()}`;continue}}else if(s[c].match(/[a-z]/)){i+=`[${s[c]}${s[c].toUpperCase()}]`;continue}}if(n.m){if(s[c]==="^"){i+=`(^|(?<=[\r
121
119
  ]))`;continue}else if(s[c]==="$"){i+=`($|(?=[\r
122
120
  ]))`;continue}}if(n.s&&s[c]==="."){i+=a?`${s[c]}\r
123
121
  `:`[${s[c]}\r
124
- ]`;continue}i+=s[c],s[c]==="\\"?o=!0:a&&s[c]==="]"?a=!1:!a&&s[c]==="["&&(a=!0)}try{let c=new RegExp(i)}catch{return console.warn(`Could not convert regex pattern at ${e.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),t.source}return i};function pu(r,e){if(e.target==="openApi3"&&r.keyType?._def.typeName===B.ZodEnum)return{type:"object",required:r.keyType._def.values,properties:r.keyType._def.values.reduce((n,s)=>({...n,[s]:U(r.valueType._def,{...e,currentPath:[...e.currentPath,"properties",s]})??{}}),{}),additionalProperties:!1};let t={type:"object",additionalProperties:U(r.valueType._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]})??{}};if(e.target==="openApi3")return t;if(r.keyType?._def.typeName===B.ZodString&&r.keyType._def.checks?.length){let n=Object.entries(lu(r.keyType._def,e)).reduce((s,[i,o])=>i==="type"?s:{...s,[i]:o},{});return{...t,propertyNames:n}}else if(r.keyType?._def.typeName===B.ZodEnum)return{...t,propertyNames:{enum:r.keyType._def.values}};return t}function Rm(r,e){if(e.mapStrategy==="record")return pu(r,e);let t=U(r.keyType._def,{...e,currentPath:[...e.currentPath,"items","items","0"]})||{},n=U(r.valueType._def,{...e,currentPath:[...e.currentPath,"items","items","1"]})||{};return{type:"array",maxItems:125,items:{type:"array",items:[t,n],minItems:2,maxItems:2}}}function Nm(r){let e=r.values,n=Object.keys(r.values).filter(i=>typeof e[e[i]]!="number").map(i=>e[i]),s=Array.from(new Set(n.map(i=>typeof i)));return{type:s.length===1?s[0]==="string"?"string":"number":["string","number"],enum:n}}function jm(){return{not:{}}}function Mm(r){return r.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var lo={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function $m(r,e){if(e.target==="openApi3")return Dm(r,e);let t=r.options instanceof Map?Array.from(r.options.values()):r.options;if(t.every(n=>n._def.typeName in lo&&(!n._def.checks||!n._def.checks.length))){let n=t.reduce((s,i)=>{let o=lo[i._def.typeName];return o&&!s.includes(o)?[...s,o]:s},[]);return{type:n.length>1?n:n[0]}}else if(t.every(n=>n._def.typeName==="ZodLiteral"&&!n.description)){let n=t.reduce((s,i)=>{let o=typeof i._def.value;switch(o){case"string":case"number":case"boolean":return[...s,o];case"bigint":return[...s,"integer"];case"object":if(i._def.value===null)return[...s,"null"];case"symbol":case"undefined":case"function":default:return s}},[]);if(n.length===t.length){let s=n.filter((i,o,a)=>a.indexOf(i)===o);return{type:s.length>1?s:s[0],enum:t.reduce((i,o)=>i.includes(o._def.value)?i:[...i,o._def.value],[])}}}else if(t.every(n=>n._def.typeName==="ZodEnum"))return{type:"string",enum:t.reduce((n,s)=>[...n,...s._def.values.filter(i=>!n.includes(i))],[])};return Dm(r,e)}var Dm=(r,e)=>{let t=(r.options instanceof Map?Array.from(r.options.values()):r.options).map((n,s)=>U(n._def,{...e,currentPath:[...e.currentPath,"anyOf",`${s}`]})).filter(n=>!!n&&(!e.strictUnions||typeof n=="object"&&Object.keys(n).length>0));return t.length?{anyOf:t}:void 0};function Lm(r,e){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(r.innerType._def.typeName)&&(!r.innerType._def.checks||!r.innerType._def.checks.length))return e.target==="openApi3"||e.nullableStrategy==="property"?{type:lo[r.innerType._def.typeName],nullable:!0}:{type:[lo[r.innerType._def.typeName],"null"]};if(e.target==="openApi3"){let n=U(r.innerType._def,{...e,currentPath:[...e.currentPath]});return n&&"$ref"in n?{allOf:[n],nullable:!0}:n&&{...n,nullable:!0}}let t=U(r.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","0"]});return t&&{anyOf:[t,{type:"null"}]}}function Fm(r,e){let t={type:"number"};if(!r.checks)return t;for(let n of r.checks)switch(n.kind){case"int":t.type="integer",vp(t,"type",n.message,e);break;case"min":e.target==="jsonSchema7"?n.inclusive?Y(t,"minimum",n.value,n.message,e):Y(t,"exclusiveMinimum",n.value,n.message,e):(n.inclusive||(t.exclusiveMinimum=!0),Y(t,"minimum",n.value,n.message,e));break;case"max":e.target==="jsonSchema7"?n.inclusive?Y(t,"maximum",n.value,n.message,e):Y(t,"exclusiveMaximum",n.value,n.message,e):(n.inclusive||(t.exclusiveMaximum=!0),Y(t,"maximum",n.value,n.message,e));break;case"multipleOf":Y(t,"multipleOf",n.value,n.message,e);break}return t}function hw(r,e){return e.removeAdditionalStrategy==="strict"?r.catchall._def.typeName==="ZodNever"?r.unknownKeys!=="strict":U(r.catchall._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]})??!0:r.catchall._def.typeName==="ZodNever"?r.unknownKeys==="passthrough":U(r.catchall._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]})??!0}function Um(r,e){let t={type:"object",...Object.entries(r.shape()).reduce((n,[s,i])=>{if(i===void 0||i._def===void 0)return n;let o=[...e.currentPath,"properties",s],a=U(i._def,{...e,currentPath:o,propertyPath:o});if(a===void 0)return n;if(e.openaiStrictMode&&i.isOptional()&&!i.isNullable()&&typeof i._def?.defaultValue>"u")throw new Error(`Zod field at \`${o.join("/")}\` uses \`.optional()\` without \`.nullable()\` which is not supported by the API. See: https://platform.openai.com/docs/guides/structured-outputs?api-mode=responses#all-fields-must-be-required`);return{properties:{...n.properties,[s]:a},required:i.isOptional()&&!e.openaiStrictMode?n.required:[...n.required,s]}},{properties:{},required:[]}),additionalProperties:hw(r,e)};return t.required.length||delete t.required,t}var zm=(r,e)=>{if(e.propertyPath&&e.currentPath.slice(0,e.propertyPath.length).toString()===e.propertyPath.toString())return U(r.innerType._def,{...e,currentPath:e.currentPath});let t=U(r.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","1"]});return t?{anyOf:[{not:{}},t]}:{}};var Bm=(r,e)=>{if(e.pipeStrategy==="input")return U(r.in._def,e);if(e.pipeStrategy==="output")return U(r.out._def,e);let t=U(r.in._def,{...e,currentPath:[...e.currentPath,"allOf","0"]}),n=U(r.out._def,{...e,currentPath:[...e.currentPath,"allOf",t?"1":"0"]});return{allOf:[t,n].filter(s=>s!==void 0)}};function Km(r,e){return U(r.type._def,e)}function Wm(r,e){let n={type:"array",uniqueItems:!0,items:U(r.valueType._def,{...e,currentPath:[...e.currentPath,"items"]})};return r.minSize&&Y(n,"minItems",r.minSize.value,r.minSize.message,e),r.maxSize&&Y(n,"maxItems",r.maxSize.value,r.maxSize.message,e),n}function Hm(r,e){return r.rest?{type:"array",minItems:r.items.length,items:r.items.map((t,n)=>U(t._def,{...e,currentPath:[...e.currentPath,"items",`${n}`]})).reduce((t,n)=>n===void 0?t:[...t,n],[]),additionalItems:U(r.rest._def,{...e,currentPath:[...e.currentPath,"additionalItems"]})}:{type:"array",minItems:r.items.length,maxItems:r.items.length,items:r.items.map((t,n)=>U(t._def,{...e,currentPath:[...e.currentPath,"items",`${n}`]})).reduce((t,n)=>n===void 0?t:[...t,n],[])}}function Vm(){return{not:{}}}function Gm(){return{}}var qm=(r,e)=>U(r.innerType._def,e);function U(r,e,t=!1){let n=e.seen.get(r);if(e.override){let o=e.override?.(r,e,n,t);if(o!==gm)return o}if(n&&!t){let o=dw(n,e);if(o!==void 0)return"$ref"in o&&e.seenRefs.add(o.$ref),o}let s={def:r,path:e.currentPath,jsonSchema:void 0};e.seen.set(r,s);let i=gw(r,r.typeName,e,t);return i&&bw(r,e,i),s.jsonSchema=i,i}var dw=(r,e)=>{switch(e.$refStrategy){case"root":return{$ref:r.path.join("/")};case"extract-to-root":let t=r.path.slice(e.basePath.length+1).join("_");return t!==e.name&&e.nameStrategy==="duplicate-ref"&&(e.definitions[t]=r.def),{$ref:[...e.basePath,e.definitionPath,t].join("/")};case"relative":return{$ref:mw(e.currentPath,r.path)};case"none":case"seen":return r.path.length<e.currentPath.length&&r.path.every((n,s)=>e.currentPath[s]===n)?(console.warn(`Recursive reference detected at ${e.currentPath.join("/")}! Defaulting to any`),{}):e.$refStrategy==="seen"?{}:void 0}},mw=(r,e)=>{let t=0;for(;t<r.length&&t<e.length&&r[t]===e[t];t++);return[(r.length-t).toString(),...e.slice(t)].join("/")},gw=(r,e,t,n)=>{switch(e){case B.ZodString:return lu(r,t);case B.ZodNumber:return Fm(r,t);case B.ZodObject:return Um(r,t);case B.ZodBigInt:return vm(r,t);case B.ZodBoolean:return Am();case B.ZodDate:return Ap(r,t);case B.ZodUndefined:return Vm();case B.ZodNull:return Mm(t);case B.ZodArray:return xm(r,t);case B.ZodUnion:case B.ZodDiscriminatedUnion:return $m(r,t);case B.ZodIntersection:return Sm(r,t);case B.ZodTuple:return Hm(r,t);case B.ZodRecord:return pu(r,t);case B.ZodLiteral:return Cm(r,t);case B.ZodEnum:return km(r);case B.ZodNativeEnum:return Nm(r);case B.ZodNullable:return Lm(r,t);case B.ZodOptional:return zm(r,t);case B.ZodMap:return Rm(r,t);case B.ZodSet:return Wm(r,t);case B.ZodLazy:return U(r.getter()._def,t);case B.ZodPromise:return Km(r,t);case B.ZodNaN:case B.ZodNever:return jm();case B.ZodEffects:return Im(r,t,n);case B.ZodAny:return wm();case B.ZodUnknown:return Gm();case B.ZodDefault:return Em(r,t);case B.ZodBranded:return Om(r,t);case B.ZodReadonly:return qm(r,t);case B.ZodCatch:return Pm(r,t);case B.ZodPipeline:return Bm(r,t);case B.ZodFunction:case B.ZodVoid:case B.ZodSymbol:return;default:return(s=>{})(e)}},bw=(r,e,t)=>(r.description&&(t.description=r.description,e.markdownDescription&&(t.markdownDescription=r.description)),t);var Pp=(r,e)=>{let t=_m(e),n=typeof e=="string"?e:e?.nameStrategy==="title"?void 0:e?.name,s=U(r._def,n===void 0?t:{...t,currentPath:[...t.basePath,t.definitionPath,n]},!1)??{},i=typeof e=="object"&&e.name!==void 0&&e.nameStrategy==="title"?e.name:void 0;i!==void 0&&(s.title=i);let o=(()=>{if(ym(t.definitions))return;let u={},c=new Set;for(let l=0;l<500;l++){let p=Object.entries(t.definitions).filter(([h])=>!c.has(h));if(p.length===0)break;for(let[h,f]of p)u[h]=U(co(f),{...t,currentPath:[...t.basePath,t.definitionPath,h]},!0)??{},c.add(h)}return u})(),a=n===void 0?o?{...s,[t.definitionPath]:o}:s:t.nameStrategy==="duplicate-ref"?{...s,...o||t.seenRefs.size?{[t.definitionPath]:{...o,...t.seenRefs.size?{[n]:s}:void 0}}:void 0}:{$ref:[...t.$refStrategy==="relative"?[]:t.basePath,t.definitionPath,n].join("/"),[t.definitionPath]:{...o,[n]:s}};return t.target==="jsonSchema7"?a.$schema="http://json-schema.org/draft-07/schema#":t.target==="jsonSchema2019-09"&&(a.$schema="https://json-schema.org/draft/2019-09/schema#"),a};function yw(r,e){return Pp(r,{openaiStrictMode:!0,name:e.name,nameStrategy:"duplicate-ref",$refStrategy:"extract-to-root",nullableStrategy:"property"})}function Jm(r,e,t){return Ud({type:"json_schema",json_schema:{...t,name:e,strict:!0,schema:yw(r,{name:e})}},n=>r.parse(JSON.parse(n)))}function po(r,e){return r.lc_error_code=e,r.message=`${r.message}
122
+ ]`;continue}i+=s[c],s[c]==="\\"?o=!0:a&&s[c]==="]"?a=!1:!a&&s[c]==="["&&(a=!0)}try{let c=new RegExp(i)}catch{return console.warn(`Could not convert regex pattern at ${e.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),t.source}return i};function hu(r,e){if(e.target==="openApi3"&&r.keyType?._def.typeName===B.ZodEnum)return{type:"object",required:r.keyType._def.values,properties:r.keyType._def.values.reduce((n,s)=>({...n,[s]:z(r.valueType._def,{...e,currentPath:[...e.currentPath,"properties",s]})??{}}),{}),additionalProperties:!1};let t={type:"object",additionalProperties:z(r.valueType._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]})??{}};if(e.target==="openApi3")return t;if(r.keyType?._def.typeName===B.ZodString&&r.keyType._def.checks?.length){let n=Object.entries(fu(r.keyType._def,e)).reduce((s,[i,o])=>i==="type"?s:{...s,[i]:o},{});return{...t,propertyNames:n}}else if(r.keyType?._def.typeName===B.ZodEnum)return{...t,propertyNames:{enum:r.keyType._def.values}};return t}function Dm(r,e){if(e.mapStrategy==="record")return hu(r,e);let t=z(r.keyType._def,{...e,currentPath:[...e.currentPath,"items","items","0"]})||{},n=z(r.valueType._def,{...e,currentPath:[...e.currentPath,"items","items","1"]})||{};return{type:"array",maxItems:125,items:{type:"array",items:[t,n],minItems:2,maxItems:2}}}function $m(r){let e=r.values,n=Object.keys(r.values).filter(i=>typeof e[e[i]]!="number").map(i=>e[i]),s=Array.from(new Set(n.map(i=>typeof i)));return{type:s.length===1?s[0]==="string"?"string":"number":["string","number"],enum:n}}function Lm(){return{not:{}}}function Fm(r){return r.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var lo={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function zm(r,e){if(e.target==="openApi3")return Um(r,e);let t=r.options instanceof Map?Array.from(r.options.values()):r.options;if(t.every(n=>n._def.typeName in lo&&(!n._def.checks||!n._def.checks.length))){let n=t.reduce((s,i)=>{let o=lo[i._def.typeName];return o&&!s.includes(o)?[...s,o]:s},[]);return{type:n.length>1?n:n[0]}}else if(t.every(n=>n._def.typeName==="ZodLiteral"&&!n.description)){let n=t.reduce((s,i)=>{let o=typeof i._def.value;switch(o){case"string":case"number":case"boolean":return[...s,o];case"bigint":return[...s,"integer"];case"object":if(i._def.value===null)return[...s,"null"];case"symbol":case"undefined":case"function":default:return s}},[]);if(n.length===t.length){let s=n.filter((i,o,a)=>a.indexOf(i)===o);return{type:s.length>1?s:s[0],enum:t.reduce((i,o)=>i.includes(o._def.value)?i:[...i,o._def.value],[])}}}else if(t.every(n=>n._def.typeName==="ZodEnum"))return{type:"string",enum:t.reduce((n,s)=>[...n,...s._def.values.filter(i=>!n.includes(i))],[])};return Um(r,e)}var Um=(r,e)=>{let t=(r.options instanceof Map?Array.from(r.options.values()):r.options).map((n,s)=>z(n._def,{...e,currentPath:[...e.currentPath,"anyOf",`${s}`]})).filter(n=>!!n&&(!e.strictUnions||typeof n=="object"&&Object.keys(n).length>0));return t.length?{anyOf:t}:void 0};function Bm(r,e){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(r.innerType._def.typeName)&&(!r.innerType._def.checks||!r.innerType._def.checks.length))return e.target==="openApi3"||e.nullableStrategy==="property"?{type:lo[r.innerType._def.typeName],nullable:!0}:{type:[lo[r.innerType._def.typeName],"null"]};if(e.target==="openApi3"){let n=z(r.innerType._def,{...e,currentPath:[...e.currentPath]});return n&&"$ref"in n?{allOf:[n],nullable:!0}:n&&{...n,nullable:!0}}let t=z(r.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","0"]});return t&&{anyOf:[t,{type:"null"}]}}function Km(r,e){let t={type:"number"};if(!r.checks)return t;for(let n of r.checks)switch(n.kind){case"int":t.type="integer",Pp(t,"type",n.message,e);break;case"min":e.target==="jsonSchema7"?n.inclusive?Y(t,"minimum",n.value,n.message,e):Y(t,"exclusiveMinimum",n.value,n.message,e):(n.inclusive||(t.exclusiveMinimum=!0),Y(t,"minimum",n.value,n.message,e));break;case"max":e.target==="jsonSchema7"?n.inclusive?Y(t,"maximum",n.value,n.message,e):Y(t,"exclusiveMaximum",n.value,n.message,e):(n.inclusive||(t.exclusiveMaximum=!0),Y(t,"maximum",n.value,n.message,e));break;case"multipleOf":Y(t,"multipleOf",n.value,n.message,e);break}return t}function _w(r,e){return e.removeAdditionalStrategy==="strict"?r.catchall._def.typeName==="ZodNever"?r.unknownKeys!=="strict":z(r.catchall._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]})??!0:r.catchall._def.typeName==="ZodNever"?r.unknownKeys==="passthrough":z(r.catchall._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]})??!0}function Wm(r,e){let t={type:"object",...Object.entries(r.shape()).reduce((n,[s,i])=>{if(i===void 0||i._def===void 0)return n;let o=[...e.currentPath,"properties",s],a=z(i._def,{...e,currentPath:o,propertyPath:o});if(a===void 0)return n;if(e.openaiStrictMode&&i.isOptional()&&!i.isNullable()&&typeof i._def?.defaultValue>"u")throw new Error(`Zod field at \`${o.join("/")}\` uses \`.optional()\` without \`.nullable()\` which is not supported by the API. See: https://platform.openai.com/docs/guides/structured-outputs?api-mode=responses#all-fields-must-be-required`);return{properties:{...n.properties,[s]:a},required:i.isOptional()&&!e.openaiStrictMode?n.required:[...n.required,s]}},{properties:{},required:[]}),additionalProperties:_w(r,e)};return t.required.length||delete t.required,t}var Hm=(r,e)=>{if(e.propertyPath&&e.currentPath.slice(0,e.propertyPath.length).toString()===e.propertyPath.toString())return z(r.innerType._def,{...e,currentPath:e.currentPath});let t=z(r.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","1"]});return t?{anyOf:[{not:{}},t]}:{}};var Vm=(r,e)=>{if(e.pipeStrategy==="input")return z(r.in._def,e);if(e.pipeStrategy==="output")return z(r.out._def,e);let t=z(r.in._def,{...e,currentPath:[...e.currentPath,"allOf","0"]}),n=z(r.out._def,{...e,currentPath:[...e.currentPath,"allOf",t?"1":"0"]});return{allOf:[t,n].filter(s=>s!==void 0)}};function Gm(r,e){return z(r.type._def,e)}function qm(r,e){let n={type:"array",uniqueItems:!0,items:z(r.valueType._def,{...e,currentPath:[...e.currentPath,"items"]})};return r.minSize&&Y(n,"minItems",r.minSize.value,r.minSize.message,e),r.maxSize&&Y(n,"maxItems",r.maxSize.value,r.maxSize.message,e),n}function Jm(r,e){return r.rest?{type:"array",minItems:r.items.length,items:r.items.map((t,n)=>z(t._def,{...e,currentPath:[...e.currentPath,"items",`${n}`]})).reduce((t,n)=>n===void 0?t:[...t,n],[]),additionalItems:z(r.rest._def,{...e,currentPath:[...e.currentPath,"additionalItems"]})}:{type:"array",minItems:r.items.length,maxItems:r.items.length,items:r.items.map((t,n)=>z(t._def,{...e,currentPath:[...e.currentPath,"items",`${n}`]})).reduce((t,n)=>n===void 0?t:[...t,n],[])}}function Xm(){return{not:{}}}function Ym(){return{}}var Zm=(r,e)=>z(r.innerType._def,e);function z(r,e,t=!1){let n=e.seen.get(r);if(e.override){let o=e.override?.(r,e,n,t);if(o!==wm)return o}if(n&&!t){let o=ww(n,e);if(o!==void 0)return"$ref"in o&&e.seenRefs.add(o.$ref),o}let s={def:r,path:e.currentPath,jsonSchema:void 0};e.seen.set(r,s);let i=vw(r,r.typeName,e,t);return i&&Aw(r,e,i),s.jsonSchema=i,i}var ww=(r,e)=>{switch(e.$refStrategy){case"root":return{$ref:r.path.join("/")};case"extract-to-root":let t=r.path.slice(e.basePath.length+1).join("_");return t!==e.name&&e.nameStrategy==="duplicate-ref"&&(e.definitions[t]=r.def),{$ref:[...e.basePath,e.definitionPath,t].join("/")};case"relative":return{$ref:xw(e.currentPath,r.path)};case"none":case"seen":return r.path.length<e.currentPath.length&&r.path.every((n,s)=>e.currentPath[s]===n)?(console.warn(`Recursive reference detected at ${e.currentPath.join("/")}! Defaulting to any`),{}):e.$refStrategy==="seen"?{}:void 0}},xw=(r,e)=>{let t=0;for(;t<r.length&&t<e.length&&r[t]===e[t];t++);return[(r.length-t).toString(),...e.slice(t)].join("/")},vw=(r,e,t,n)=>{switch(e){case B.ZodString:return fu(r,t);case B.ZodNumber:return Km(r,t);case B.ZodObject:return Wm(r,t);case B.ZodBigInt:return Em(r,t);case B.ZodBoolean:return Im();case B.ZodDate:return Ep(r,t);case B.ZodUndefined:return Xm();case B.ZodNull:return Fm(t);case B.ZodArray:return Pm(r,t);case B.ZodUnion:case B.ZodDiscriminatedUnion:return zm(r,t);case B.ZodIntersection:return Nm(r,t);case B.ZodTuple:return Jm(r,t);case B.ZodRecord:return hu(r,t);case B.ZodLiteral:return jm(r,t);case B.ZodEnum:return Rm(r);case B.ZodNativeEnum:return $m(r);case B.ZodNullable:return Bm(r,t);case B.ZodOptional:return Hm(r,t);case B.ZodMap:return Dm(r,t);case B.ZodSet:return qm(r,t);case B.ZodLazy:return z(r.getter()._def,t);case B.ZodPromise:return Gm(r,t);case B.ZodNaN:case B.ZodNever:return Lm();case B.ZodEffects:return Tm(r,t,n);case B.ZodAny:return Om();case B.ZodUnknown:return Ym();case B.ZodDefault:return Cm(r,t);case B.ZodBranded:return km(r,t);case B.ZodReadonly:return Zm(r,t);case B.ZodCatch:return Sm(r,t);case B.ZodPipeline:return Vm(r,t);case B.ZodFunction:case B.ZodVoid:case B.ZodSymbol:return;default:return(s=>{})(e)}},Aw=(r,e,t)=>(r.description&&(t.description=r.description,e.markdownDescription&&(t.markdownDescription=r.description)),t);var kp=(r,e)=>{let t=Am(e),n=typeof e=="string"?e:e?.nameStrategy==="title"?void 0:e?.name,s=z(r._def,n===void 0?t:{...t,currentPath:[...t.basePath,t.definitionPath,n]},!1)??{},i=typeof e=="object"&&e.name!==void 0&&e.nameStrategy==="title"?e.name:void 0;i!==void 0&&(s.title=i);let o=(()=>{if(vm(t.definitions))return;let u={},c=new Set;for(let l=0;l<500;l++){let p=Object.entries(t.definitions).filter(([h])=>!c.has(h));if(p.length===0)break;for(let[h,f]of p)u[h]=z(co(f),{...t,currentPath:[...t.basePath,t.definitionPath,h]},!0)??{},c.add(h)}return u})(),a=n===void 0?o?{...s,[t.definitionPath]:o}:s:t.nameStrategy==="duplicate-ref"?{...s,...o||t.seenRefs.size?{[t.definitionPath]:{...o,...t.seenRefs.size?{[n]:s}:void 0}}:void 0}:{$ref:[...t.$refStrategy==="relative"?[]:t.basePath,t.definitionPath,n].join("/"),[t.definitionPath]:{...o,[n]:s}};return t.target==="jsonSchema7"?a.$schema="http://json-schema.org/draft-07/schema#":t.target==="jsonSchema2019-09"&&(a.$schema="https://json-schema.org/draft/2019-09/schema#"),a};function Ow(r,e){return kp(r,{openaiStrictMode:!0,name:e.name,nameStrategy:"duplicate-ref",$refStrategy:"extract-to-root",nullableStrategy:"property"})}function Qm(r,e,t){return Wd({type:"json_schema",json_schema:{...t,name:e,strict:!0,schema:Ow(r,{name:e})}},n=>r.parse(JSON.parse(n)))}function po(r,e){return r.lc_error_code=e,r.message=`${r.message}
125
123
 
126
124
  Troubleshooting URL: https://js.langchain.com/docs/troubleshooting/errors/${e}/
127
- `,r}function ri(r){let e;return r.constructor.name===Jt.name?(e=new Error(r.message),e.name="TimeoutError"):r.constructor.name===fe.name?(e=new Error(r.message),e.name="AbortError"):r.status===400&&r.message.includes("tool_calls")?e=po(r,"INVALID_TOOL_RESULTS"):r.status===401?e=po(r,"MODEL_AUTHENTICATION"):r.status===429?e=po(r,"MODEL_RATE_LIMIT"):r.status===404?e=po(r,"MODEL_NOT_FOUND"):e=r,e}function Ep(r){if(r)return r==="any"||r==="required"?"required":r==="auto"?"auto":r==="none"?"none":typeof r=="string"?{type:"function",function:{name:r}}:r}function _w(r,e){let t={...r};return Object.defineProperties(t,{$brand:{value:"auto-parseable-response-format",enumerable:!1},$parseRaw:{value:e,enumerable:!1}}),t}function Xm(r,e,t){if(ai(r))return Jm(r,e,t);if(Ru(r))return _w({type:"json_schema",json_schema:{...t,name:e,strict:!0,schema:jf(r,{cycles:"ref",reused:"ref",override(n){n.jsonSchema.title=e}})}},n=>Nf(r,JSON.parse(n)));throw new Error("Unsupported schema response format")}function ww(r){return r.anyOf!==void 0&&Array.isArray(r.anyOf)}function Ym(r){let e=["namespace functions {",""];for(let t of r)t.description&&e.push(`// ${t.description}`),Object.keys(t.parameters.properties??{}).length>0?(e.push(`type ${t.name} = (_: {`),e.push(Zm(t.parameters,0)),e.push("}) => any;")):e.push(`type ${t.name} = () => any;`),e.push("");return e.push("} // namespace functions"),e.join(`
128
- `)}function Zm(r,e){let t=[];for(let[n,s]of Object.entries(r.properties??{}))s.description&&e<2&&t.push(`// ${s.description}`),r.required?.includes(n)?t.push(`${n}: ${fu(s,e)},`):t.push(`${n}?: ${fu(s,e)},`);return t.map(n=>" ".repeat(e)+n).join(`
129
- `)}function fu(r,e){if(ww(r))return r.anyOf.map(t=>fu(t,e)).join(" | ");switch(r.type){case"string":return r.enum?r.enum.map(t=>`"${t}"`).join(" | "):"string";case"number":return r.enum?r.enum.map(t=>`${t}`).join(" | "):"number";case"integer":return r.enum?r.enum.map(t=>`${t}`).join(" | "):"number";case"boolean":return"boolean";case"null":return"null";case"object":return["{",Zm(r,e+2),"}"].join(`
130
- `);case"array":return r.items?`${fu(r.items,e)}[]`:"any[]";default:return""}}function Qm(r,e){let t;return Er(r)?t=Jo(r):t=r,t.type==="function"&&e?.strict!==void 0&&(t.function.strict=e.strict),t}function hu(r){return"type"in r&&r.type!=="function"&&r.type!=="custom"}function eg(r){return r!=null&&typeof r=="object"&&"type"in r&&r.type!=="function"}function tg(r){return typeof r=="object"&&r!==null&&"metadata"in r&&typeof r.metadata=="object"&&r.metadata!==null&&"customTool"in r.metadata&&typeof r.metadata.customTool=="object"&&r.metadata.customTool!==null}function Ip(r){return"type"in r&&r.type==="custom"&&"custom"in r&&typeof r.custom=="object"&&r.custom!==null}function rg(r){if(r.type==="custom_tool_call")return{...r,type:"tool_call",call_id:r.id,id:r.call_id,name:r.name,isCustomTool:!0,args:{input:r.input}}}function ng(r){return r.type==="tool_call"&&"isCustomTool"in r&&r.isCustomTool===!0}function sg(r){let e=()=>{if(r.custom.format){if(r.custom.format.type==="grammar")return{type:"grammar",definition:r.custom.format.grammar.definition,syntax:r.custom.format.grammar.syntax};if(r.custom.format.type==="text")return{type:"text"}}};return{type:"custom",name:r.custom.name,description:r.custom.description,format:e()}}function ig(r){let e=()=>{if(r.format){if(r.format.type==="grammar")return{type:"grammar",grammar:{definition:r.format.definition,syntax:r.format.syntax}};if(r.format.type==="text")return{type:"text"}}};return{type:"custom",custom:{name:r.name,description:r.description,format:e()}}}function og(r,e){if(e&&typeof e=="object"&&"images"in e&&Array.isArray(e.images)){let t=e.images.filter(n=>typeof n?.image_url?.url=="string").map(n=>({type:"image",url:n.image_url.url,source_type:"url"}));return[{type:"text",text:r,source_type:"text"},...t]}return r}function kp(r){let e={...r?.input_tokens_details?.cached_tokens!=null&&{cache_read:r?.input_tokens_details?.cached_tokens}},t={...r?.output_tokens_details?.reasoning_tokens!=null&&{reasoning:r?.output_tokens_details?.reasoning_tokens}};return{input_tokens:r?.input_tokens??0,output_tokens:r?.output_tokens??0,total_tokens:r?.total_tokens??0,input_token_details:e,output_token_details:t}}var du="__openai_function_call_ids__";function gu(r){return r?!!(/^o\d/.test(r??"")||r.startsWith("gpt-5")&&!r.startsWith("gpt-5-chat")):!1}function xw(r){return r!==void 0&&typeof r.schema=="object"}function vw(r){return r.role!=="system"&&r.role!=="developer"&&r.role!=="assistant"&&r.role!=="user"&&r.role!=="function"&&r.role!=="tool"&&console.warn(`Unknown message role: ${r.role}`),r.role}function Cp(r){let e=r._getType();switch(e){case"system":return"system";case"ai":return"assistant";case"human":return"user";case"function":return"function";case"tool":return"tool";case"generic":{if(!Su.isInstance(r))throw new Error("Invalid generic chat message");return vw(r)}default:throw new Error(`Unknown message type: ${e}`)}}var ag={providerName:"ChatOpenAI",fromStandardTextBlock(r){return{type:"text",text:r.text}},fromStandardImageBlock(r){if(r.source_type==="url")return{type:"image_url",image_url:{url:r.url,...r.metadata?.detail?{detail:r.metadata.detail}:{}}};if(r.source_type==="base64")return{type:"image_url",image_url:{url:`data:${r.mime_type??""};base64,${r.data}`,...r.metadata?.detail?{detail:r.metadata.detail}:{}}};throw new Error(`Image content blocks with source_type ${r.source_type} are not supported for ChatOpenAI`)},fromStandardAudioBlock(r){if(r.source_type==="url"){let e=Pu({dataUrl:r.url});if(!e)throw new Error(`URL audio blocks with source_type ${r.source_type} must be formatted as a data URL for ChatOpenAI`);let t=e.mime_type||r.mime_type||"",n;try{n=Ou(t)}catch{throw new Error(`Audio blocks with source_type ${r.source_type} must have mime type of audio/wav or audio/mp3`)}if(n.type!=="audio"||n.subtype!=="wav"&&n.subtype!=="mp3")throw new Error(`Audio blocks with source_type ${r.source_type} must have mime type of audio/wav or audio/mp3`);return{type:"input_audio",input_audio:{format:n.subtype,data:e.data}}}if(r.source_type==="base64"){let e;try{e=Ou(r.mime_type??"")}catch{throw new Error(`Audio blocks with source_type ${r.source_type} must have mime type of audio/wav or audio/mp3`)}if(e.type!=="audio"||e.subtype!=="wav"&&e.subtype!=="mp3")throw new Error(`Audio blocks with source_type ${r.source_type} must have mime type of audio/wav or audio/mp3`);return{type:"input_audio",input_audio:{format:e.subtype,data:r.data}}}throw new Error(`Audio content blocks with source_type ${r.source_type} are not supported for ChatOpenAI`)},fromStandardFileBlock(r){if(r.source_type==="url"){if(!Pu({dataUrl:r.url}))throw new Error(`URL file blocks with source_type ${r.source_type} must be formatted as a data URL for ChatOpenAI`);return{type:"file",file:{file_data:r.url,...r.metadata?.filename||r.metadata?.name?{filename:r.metadata?.filename||r.metadata?.name}:{}}}}if(r.source_type==="base64")return{type:"file",file:{file_data:`data:${r.mime_type??""};base64,${r.data}`,...r.metadata?.filename||r.metadata?.name||r.metadata?.title?{filename:r.metadata?.filename||r.metadata?.name||r.metadata?.title}:{}}};if(r.source_type==="id")return{type:"file",file:{file_id:r.id}};throw new Error(`File content blocks with source_type ${r.source_type} are not supported for ChatOpenAI`)}};function Sp(r,e){return r.flatMap(t=>{let n=Cp(t);n==="system"&&gu(e)&&(n="developer");let s=typeof t.content=="string"?t.content:t.content.map(o=>Au(o)?Eu(o,ag):o),i={role:n,content:s};if(t.name!=null&&(i.name=t.name),t.additional_kwargs.function_call!=null&&(i.function_call=t.additional_kwargs.function_call,i.content=""),jt(t)&&t.tool_calls?.length?(i.tool_calls=t.tool_calls.map(dm),i.content=""):(t.additional_kwargs.tool_calls!=null&&(i.tool_calls=t.additional_kwargs.tool_calls),t.tool_call_id!=null&&(i.tool_call_id=t.tool_call_id)),t.additional_kwargs.audio&&typeof t.additional_kwargs.audio=="object"&&"id"in t.additional_kwargs.audio){let o={role:"assistant",audio:{id:t.additional_kwargs.audio.id}};return[i,o]}return i})}var fo=class extends zt{_llmType(){return"openai"}static lc_name(){return"ChatOpenAI"}get callKeys(){return[...super.callKeys,"options","function_call","functions","tools","tool_choice","promptIndex","response_format","seed","reasoning","reasoningEffort","service_tier"]}get lc_secrets(){return{apiKey:"OPENAI_API_KEY",organization:"OPENAI_ORGANIZATION"}}get lc_aliases(){return{apiKey:"openai_api_key",modelName:"model",reasoningEffort:"reasoning_effort"}}get lc_serializable_keys(){return["configuration","logprobs","topLogprobs","prefixMessages","supportsStrictToolCalling","modalities","audio","temperature","maxTokens","topP","frequencyPenalty","presencePenalty","n","logitBias","user","streaming","streamUsage","model","modelName","modelKwargs","stop","stopSequences","timeout","apiKey","cache","maxConcurrency","maxRetries","verbose","callbacks","tags","metadata","disableStreaming","zdrEnabled","reasoning","reasoningEffort","promptCacheKey","verbosity"]}getLsParams(e){let t=this.invocationParams(e);return{ls_provider:"openai",ls_model_name:this.model,ls_model_type:"chat",ls_temperature:t.temperature??void 0,ls_max_tokens:t.max_tokens??void 0,ls_stop:e.stop}}_identifyingParams(){return{model_name:this.model,...this.invocationParams(),...this.clientConfig}}identifyingParams(){return this._identifyingParams()}constructor(e){super(e??{}),Object.defineProperty(this,"temperature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"topP",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"frequencyPenalty",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"presencePenalty",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"n",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"logitBias",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"model",{enumerable:!0,configurable:!0,writable:!0,value:"gpt-3.5-turbo"}),Object.defineProperty(this,"modelKwargs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"stop",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"stopSequences",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"user",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"streaming",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"streamUsage",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"maxTokens",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"logprobs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"topLogprobs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"apiKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"organization",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"__includeRawResponse",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"client",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"clientConfig",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"supportsStrictToolCalling",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"audio",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"modalities",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reasoning",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"zdrEnabled",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"service_tier",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"promptCacheKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"verbosity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"defaultOptions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),this.apiKey=e?.apiKey??e?.configuration?.apiKey??pe("OPENAI_API_KEY"),this.organization=e?.configuration?.organization??pe("OPENAI_ORGANIZATION"),this.model=e?.model??e?.modelName??this.model,this.modelKwargs=e?.modelKwargs??{},this.timeout=e?.timeout,this.temperature=e?.temperature??this.temperature,this.topP=e?.topP??this.topP,this.frequencyPenalty=e?.frequencyPenalty??this.frequencyPenalty,this.presencePenalty=e?.presencePenalty??this.presencePenalty,this.logprobs=e?.logprobs,this.topLogprobs=e?.topLogprobs,this.n=e?.n??this.n,this.logitBias=e?.logitBias,this.stop=e?.stopSequences??e?.stop,this.stopSequences=this.stop,this.user=e?.user,this.__includeRawResponse=e?.__includeRawResponse,this.audio=e?.audio,this.modalities=e?.modalities,this.reasoning=e?.reasoning??e?.reasoningEffort?{effort:e.reasoningEffort}:void 0,this.maxTokens=e?.maxCompletionTokens??e?.maxTokens,this.disableStreaming=e?.disableStreaming===!0,this.streaming=e?.streaming===!0,this.promptCacheKey=e?.promptCacheKey??this.promptCacheKey,this.verbosity=e?.verbosity??this.verbosity,e?.streaming===!1&&(this.disableStreaming=!0),this.disableStreaming===!0&&(this.streaming=!1),this.streamUsage=e?.streamUsage??this.streamUsage,this.disableStreaming&&(this.streamUsage=!1),this.clientConfig={apiKey:this.apiKey,organization:this.organization,dangerouslyAllowBrowser:!0,...e?.configuration},e?.supportsStrictToolCalling!==void 0&&(this.supportsStrictToolCalling=e.supportsStrictToolCalling),e?.service_tier!==void 0&&(this.service_tier=e.service_tier),this.zdrEnabled=e?.zdrEnabled??!1}_getReasoningParams(e){if(!gu(this.model))return;let t;return this.reasoning!==void 0&&(t={...t,...this.reasoning}),e?.reasoning!==void 0&&(t={...t,...e.reasoning}),t}_getResponseFormat(e){return e&&e.type==="json_schema"&&e.json_schema.schema&&Ze(e.json_schema.schema)?Xm(e.json_schema.schema,e.json_schema.name,{description:e.json_schema.description}):e}_combineCallOptions(e){return{...this.defaultOptions,...e??{}}}_getClientOptions(e){if(!this.client){let n={baseURL:this.clientConfig.baseURL},s=Vr(n),i={...this.clientConfig,baseURL:s,timeout:this.timeout,maxRetries:0};i.baseURL||delete i.baseURL,this.client=new z(i)}return{...this.clientConfig,...e}}_convertChatOpenAIToolToCompletionsTool(e,t){return tg(e)?ig(e.metadata.customTool):zo(e)?t?.strict!==void 0?{...e,function:{...e.function,strict:t.strict}}:e:Qm(e,t)}bindTools(e,t){let n;return t?.strict!==void 0?n=t.strict:this.supportsStrictToolCalling!==void 0&&(n=this.supportsStrictToolCalling),this.withConfig({tools:e.map(s=>hu(s)?s:this._convertChatOpenAIToolToCompletionsTool(s,{strict:n})),...t})}async stream(e,t){return super.stream(e,this._combineCallOptions(t))}async invoke(e,t){return super.invoke(e,this._combineCallOptions(t))}_combineLLMOutput(...e){return e.reduce((t,n)=>(n&&n.tokenUsage&&(t.tokenUsage.completionTokens+=n.tokenUsage.completionTokens??0,t.tokenUsage.promptTokens+=n.tokenUsage.promptTokens??0,t.tokenUsage.totalTokens+=n.tokenUsage.totalTokens??0),t),{tokenUsage:{completionTokens:0,promptTokens:0,totalTokens:0}})}async getNumTokensFromMessages(e){let t=0,n=0,s=0;this.model==="gpt-3.5-turbo-0301"?(n=4,s=-1):(n=3,s=1);let i=await Promise.all(e.map(async o=>{let a=await this.getNumTokens(o.content),u=await this.getNumTokens(Cp(o)),c=o.name!==void 0?s+await this.getNumTokens(o.name):0,l=a+n+u+c,p=o;if(p._getType()==="function"&&(l-=2),p.additional_kwargs?.function_call&&(l+=3),p?.additional_kwargs.function_call?.name&&(l+=await this.getNumTokens(p.additional_kwargs.function_call?.name)),p.additional_kwargs.function_call?.arguments)try{l+=await this.getNumTokens(JSON.stringify(JSON.parse(p.additional_kwargs.function_call?.arguments)))}catch(h){console.error("Error parsing function arguments",h,JSON.stringify(p.additional_kwargs.function_call)),l+=await this.getNumTokens(p.additional_kwargs.function_call?.arguments)}return t+=l,l}));return t+=3,{totalCount:t,countPerMessage:i}}async _getNumTokensFromGenerations(e){return(await Promise.all(e.map(async n=>n.message.additional_kwargs?.function_call?(await this.getNumTokensFromMessages([n.message])).countPerMessage[0]:await this.getNumTokens(n.message.content)))).reduce((n,s)=>n+s,0)}async _getEstimatedTokenCountFromPrompt(e,t,n){let s=(await this.getNumTokensFromMessages(e)).totalCount;if(t&&n!=="auto"){let i=Ym(t);s+=await this.getNumTokens(i),s+=9}return t&&e.find(i=>i._getType()==="system")&&(s-=4),n==="none"?s+=1:typeof n=="object"&&(s+=await this.getNumTokens(n.name)+4),s}_getStructuredOutputMethod(e){let t={...e};if(!this.model.startsWith("gpt-3")&&!this.model.startsWith("gpt-4-")&&this.model!=="gpt-4"){if(t?.method===void 0)return"jsonSchema"}else t.method==="jsonSchema"&&console.warn(`[WARNING]: JSON Schema is not supported for model "${this.model}". Falling back to tool calling.`);return t.method}withStructuredOutput(e,t){let n,s,i,o;xw(e)?(n=e.schema,s=e.name,i=e.method,o=e.includeRaw):(n=e,s=t?.name,i=t?.method,o=t?.includeRaw);let a,u;if(t?.strict!==void 0&&i==="jsonMode")throw new Error("Argument `strict` is only supported for `method` = 'function_calling'");if(i=this._getStructuredOutputMethod({...t,method:i}),i==="jsonMode"){Ze(n)?u=rn.fromZodSchema(n):u=new Zn;let h=Ae(n);a=this.withConfig({response_format:{type:"json_object"},ls_structured_output_format:{kwargs:{method:"json_mode"},schema:{title:s??"extract",...h}}})}else if(i==="jsonSchema"){let h={name:s??"extract",description:$t(n),schema:n,strict:t?.strict},f=Ae(h.schema);if(a=this.withConfig({response_format:{type:"json_schema",json_schema:h},ls_structured_output_format:{kwargs:{method:"json_schema"},schema:{title:h.name,description:h.description,...f}}}),Ze(n)){let g=rn.fromZodSchema(n);u=Ft.from(b=>"parsed"in b.additional_kwargs?b.additional_kwargs.parsed:g)}else u=new Zn}else{let h=s??"extract";if(Ze(n)){let f=Ae(n);a=this.withConfig({tools:[{type:"function",function:{name:h,description:f.description,parameters:f}}],tool_choice:{type:"function",function:{name:h}},ls_structured_output_format:{kwargs:{method:"function_calling"},schema:{title:h,...f}},...t?.strict!==void 0?{strict:t.strict}:{}}),u=new uo({returnSingle:!0,keyName:h,zodSchema:n})}else{let f;typeof n.name=="string"&&typeof n.parameters=="object"&&n.parameters!=null?(f=n,h=n.name):(h=n.title??h,f={name:h,description:n.description??"",parameters:n});let g=Ae(n);a=this.withConfig({tools:[{type:"function",function:f}],tool_choice:{type:"function",function:{name:h}},ls_structured_output_format:{kwargs:{method:"function_calling"},schema:{title:h,...g}},...t?.strict!==void 0?{strict:t.strict}:{}}),u=new uo({returnSingle:!0,keyName:h})}}if(!o)return a.pipe(u);let c=Ge.assign({parsed:(h,f)=>u.invoke(h.raw,f)}),l=Ge.assign({parsed:()=>null}),p=c.withFallbacks({fallbacks:[l]});return Qe.from([{raw:a},p])}},ho=class extends fo{invocationParams(e){let t;e?.strict!==void 0?t=e.strict:this.supportsStrictToolCalling!==void 0&&(t=this.supportsStrictToolCalling);let n={model:this.model,temperature:this.temperature,top_p:this.topP,user:this.user,stream:this.streaming,previous_response_id:e?.previous_response_id,truncation:e?.truncation,include:e?.include,tools:e?.tools?.length?this._reduceChatOpenAITools(e.tools,{stream:this.streaming,strict:t}):void 0,tool_choice:eg(e?.tool_choice)?e?.tool_choice:(()=>{let i=Ep(e?.tool_choice);if(typeof i=="object"&&"type"in i){if(i.type==="function")return{type:"function",name:i.function.name};if(i.type==="allowed_tools")return{type:"allowed_tools",mode:i.allowed_tools.mode,tools:i.allowed_tools.tools};if(i.type==="custom")return{type:"custom",name:i.custom.name}}})(),text:(()=>{if(e?.text)return e.text;let i=this._getResponseFormat(e?.response_format);return i?.type==="json_schema"?i.json_schema.schema!=null?{format:{type:"json_schema",schema:i.json_schema.schema,description:i.json_schema.description,name:i.json_schema.name,strict:i.json_schema.strict},verbosity:e?.verbosity}:void 0:{format:i,verbosity:e?.verbosity}})(),parallel_tool_calls:e?.parallel_tool_calls,max_output_tokens:this.maxTokens===-1?void 0:this.maxTokens,prompt_cache_key:e?.promptCacheKey??this.promptCacheKey,...this.zdrEnabled?{store:!1}:{},...this.modelKwargs},s=this._getReasoningParams(e);return s!==void 0&&(n.reasoning=s),n}async _generate(e,t){let n=this.invocationParams(t);if(n.stream){let s=this._streamResponseChunks(e,t),i;for await(let o of s)o.message.response_metadata={...o.generationInfo,...o.message.response_metadata},i=i?.concat(o)??o;return{generations:i?[i]:[],llmOutput:{estimatedTokenUsage:i?.message?.usage_metadata}}}else{let s=this._convertMessagesToResponsesParams(e),i=await this.completionWithRetry({input:s,...n,stream:!1},{signal:t?.signal,...t?.options});return{generations:[{text:i.output_text,message:this._convertResponsesMessageToBaseMessage(i)}],llmOutput:{id:i.id,estimatedTokenUsage:i.usage?{promptTokens:i.usage.input_tokens,completionTokens:i.usage.output_tokens,totalTokens:i.usage.total_tokens}:void 0}}}}async*_streamResponseChunks(e,t,n){let s=await this.completionWithRetry({...this.invocationParams(t),input:this._convertMessagesToResponsesParams(e),stream:!0},t);for await(let i of s){let o=this._convertResponsesDeltaToBaseMessageChunk(i);o!=null&&(yield o,await n?.handleLLMNewToken(o.text||"",{prompt:t.promptIndex??0,completion:0},void 0,void 0,void 0,{chunk:o}))}}async completionWithRetry(e,t){return this.caller.call(async()=>{let n=this._getClientOptions(t);try{return e.text?.format?.type==="json_schema"&&!e.stream?await this.client.responses.parse(e,n):await this.client.responses.create(e,n)}catch(s){throw ri(s)}})}_convertResponsesMessageToBaseMessage(e){if(e.error){let u=new Error(e.error.message);throw u.name=e.error.code,u}let t,n=[],s=[],i=[],o={model:e.model,created_at:e.created_at,id:e.id,incomplete_details:e.incomplete_details,metadata:e.metadata,object:e.object,status:e.status,user:e.user,service_tier:e.service_tier,model_name:e.model},a={};for(let u of e.output)if(u.type==="message")t=u.id,n.push(...u.content.flatMap(c=>c.type==="output_text"?("parsed"in c&&c.parsed!=null&&(a.parsed=c.parsed),{type:"text",text:c.text,annotations:c.annotations}):c.type==="refusal"?(a.refusal=c.refusal,[]):c));else if(u.type==="function_call"){let c={function:{name:u.name,arguments:u.arguments},id:u.call_id};try{s.push(uu(c,{returnId:!0}))}catch(l){let p;typeof l=="object"&&l!=null&&"message"in l&&typeof l.message=="string"&&(p=l.message),i.push(cu(c,p))}a[du]??={},u.id&&(a[du][u.call_id]=u.id)}else if(u.type==="reasoning")a.reasoning=u;else if(u.type==="custom_tool_call"){let c=rg(u);c?s.push(c):i.push(cu(u,"Malformed custom tool call"))}else a.tool_outputs??=[],a.tool_outputs.push(u);return new ue({id:t,content:n,tool_calls:s,invalid_tool_calls:i,usage_metadata:kp(e.usage),additional_kwargs:a,response_metadata:o})}_convertResponsesDeltaToBaseMessageChunk(e){let t=[],n={},s,i=[],o={},a={},u;if(e.type==="response.output_text.delta")t.push({type:"text",text:e.delta,index:e.content_index});else if(e.type==="response.output_text.annotation.added")t.push({type:"text",text:"",annotations:[e.annotation],index:e.content_index});else if(e.type==="response.output_item.added"&&e.item.type==="message")u=e.item.id;else if(e.type==="response.output_item.added"&&e.item.type==="function_call")i.push({type:"tool_call_chunk",name:e.item.name,args:e.item.arguments,id:e.item.call_id,index:e.output_index}),a[du]={[e.item.call_id]:e.item.id};else if(e.type==="response.output_item.done"&&["web_search_call","file_search_call","computer_call","code_interpreter_call","mcp_call","mcp_list_tools","mcp_approval_request","image_generation_call","custom_tool_call"].includes(e.item.type))a.tool_outputs=[e.item];else if(e.type==="response.created")o.id=e.response.id,o.model_name=e.response.model,o.model=e.response.model;else if(e.type==="response.completed"){let c=this._convertResponsesMessageToBaseMessage(e.response);s=kp(e.response.usage),e.response.text?.format?.type==="json_schema"&&(a.parsed??=JSON.parse(c.text));for(let[l,p]of Object.entries(e.response))l!=="id"&&(o[l]=p)}else if(e.type==="response.function_call_arguments.delta"||e.type==="response.custom_tool_call_input.delta")i.push({type:"tool_call_chunk",args:e.delta,index:e.output_index});else if(e.type==="response.web_search_call.completed"||e.type==="response.file_search_call.completed")n={tool_outputs:{id:e.item_id,type:e.type.replace("response.","").replace(".completed",""),status:"completed"}};else if(e.type==="response.refusal.done")a.refusal=e.refusal;else if(e.type==="response.output_item.added"&&"item"in e&&e.item.type==="reasoning"){let c=e.item.summary?e.item.summary.map((l,p)=>({...l,index:p})):void 0;a.reasoning={id:e.item.id,type:e.item.type,...c?{summary:c}:{}}}else if(e.type==="response.reasoning_summary_part.added")a.reasoning={type:"reasoning",summary:[{...e.part,index:e.summary_index}]};else if(e.type==="response.reasoning_summary_text.delta")a.reasoning={type:"reasoning",summary:[{text:e.delta,type:"summary_text",index:e.summary_index}]};else return e.type==="response.image_generation_call.partial_image",null;return new ht({text:t.map(c=>c.text).join(""),message:new Mt({id:u,content:t,tool_call_chunks:i,usage_metadata:s,additional_kwargs:a,response_metadata:o}),generationInfo:n})}_convertMessagesToResponsesParams(e){return e.flatMap(t=>{let n=t.additional_kwargs,s=Cp(t);if(s==="system"&&gu(this.model)&&(s="developer"),s==="function")throw new Error("Function messages are not supported in Responses API");if(s==="tool"){let i=t;return n?.type==="computer_call_output"?{type:"computer_call_output",output:(()=>{if(typeof i.content=="string")return{type:"computer_screenshot",image_url:i.content};if(Array.isArray(i.content)){let a=i.content.find(c=>c.type==="computer_screenshot");if(a)return a;let u=i.content.find(c=>c.type==="image_url");if(u)return{type:"computer_screenshot",image_url:typeof u.image_url=="string"?u.image_url:u.image_url.url}}throw new Error("Invalid computer call output")})(),call_id:i.tool_call_id}:i.metadata?.customTool?{type:"custom_tool_call_output",call_id:i.tool_call_id,output:i.content}:{type:"function_call_output",call_id:i.tool_call_id,id:i.id?.startsWith("fc_")?i.id:void 0,output:typeof i.content!="string"?JSON.stringify(i.content):i.content}}if(s==="assistant"){if(!this.zdrEnabled&&t.response_metadata.output!=null&&Array.isArray(t.response_metadata.output)&&t.response_metadata.output.length>0&&t.response_metadata.output.every(l=>"type"in l))return t.response_metadata.output;let i=[];if(n?.reasoning&&!this.zdrEnabled){let l=this._convertReasoningSummary(n.reasoning);i.push(l)}let{content:o}=t;n?.refusal&&(typeof o=="string"&&(o=[{type:"output_text",text:o,annotations:[]}]),o=[...o,{type:"refusal",refusal:n.refusal}]),(typeof o=="string"||o.length>0)&&i.push({type:"message",role:"assistant",...t.id&&!this.zdrEnabled&&t.id.startsWith("msg_")?{id:t.id}:{},content:typeof o=="string"?o:o.flatMap(l=>l.type==="text"?{type:"output_text",text:l.text,annotations:l.annotations??[]}:l.type==="output_text"||l.type==="refusal"?l:[])});let a=n?.[du];jt(t)&&t.tool_calls?.length?i.push(...t.tool_calls.map(l=>ng(l)?{type:"custom_tool_call",id:l.call_id,call_id:l.id??"",input:l.args.input,name:l.name}:{type:"function_call",name:l.name,arguments:JSON.stringify(l.args),call_id:l.id,...this.zdrEnabled?{id:a?.[l.id]}:{}})):n?.tool_calls&&i.push(...n.tool_calls.map(l=>({type:"function_call",name:l.function.name,call_id:l.id,arguments:l.function.arguments,...this.zdrEnabled?{id:a?.[l.id]}:{}})));let u=t.response_metadata.output?.length?t.response_metadata.output:n.tool_outputs,c=["computer_call","mcp_call","code_interpreter_call","image_generation_call"];if(u!=null){let p=u?.filter(h=>c.includes(h.type));p.length>0&&i.push(...p)}return i}if(s==="user"||s==="system"||s==="developer"){if(typeof t.content=="string")return{type:"message",role:s,content:t.content};let i=[],o=t.content.flatMap(a=>(a.type==="mcp_approval_response"&&i.push({type:"mcp_approval_response",approval_request_id:a.approval_request_id,approve:a.approve}),Au(a)?Eu(a,ag):a.type==="text"?{type:"input_text",text:a.text}:a.type==="image_url"?{type:"input_image",image_url:typeof a.image_url=="string"?a.image_url:a.image_url.url,detail:typeof a.image_url=="string"?"auto":a.image_url.detail}:a.type==="input_text"||a.type==="input_image"||a.type==="input_file"?a:[]));return o.length>0&&i.push({type:"message",role:s,content:o}),i}return console.warn(`Unsupported role found when converting to OpenAI Responses API: ${s}`),[]})}_convertReasoningSummary(e){let t=(e.summary.length>1?e.summary.reduce((n,s)=>{let i=n.at(-1);return i.index===s.index?i.text+=s.text:n.push(s),n},[{...e.summary[0]}]):e.summary).map(n=>Object.fromEntries(Object.entries(n).filter(([s])=>s!=="index")));return{...e,summary:t}}_reduceChatOpenAITools(e,t){let n=[];for(let s of e)hu(s)?(s.type==="image_generation"&&t?.stream&&(s.partial_images=1),n.push(s)):zo(s)?n.push({type:"function",name:s.function.name,parameters:s.function.parameters,description:s.function.description,strict:t?.strict??null}):Ip(s)&&n.push(sg(s));return n}},mo=class extends fo{invocationParams(e,t){let n;e?.strict!==void 0?n=e.strict:this.supportsStrictToolCalling!==void 0&&(n=this.supportsStrictToolCalling);let s={};e?.stream_options!==void 0?s={stream_options:e.stream_options}:this.streamUsage&&(this.streaming||t?.streaming)&&(s={stream_options:{include_usage:!0}});let i={model:this.model,temperature:this.temperature,top_p:this.topP,frequency_penalty:this.frequencyPenalty,presence_penalty:this.presencePenalty,logprobs:this.logprobs,top_logprobs:this.topLogprobs,n:this.n,logit_bias:this.logitBias,stop:e?.stop??this.stopSequences,user:this.user,stream:this.streaming,functions:e?.functions,function_call:e?.function_call,tools:e?.tools?.length?e.tools.map(a=>this._convertChatOpenAIToolToCompletionsTool(a,{strict:n})):void 0,tool_choice:Ep(e?.tool_choice),response_format:this._getResponseFormat(e?.response_format),seed:e?.seed,...s,parallel_tool_calls:e?.parallel_tool_calls,...this.audio||e?.audio?{audio:this.audio||e?.audio}:{},...this.modalities||e?.modalities?{modalities:this.modalities||e?.modalities}:{},...this.modelKwargs,prompt_cache_key:e?.promptCacheKey??this.promptCacheKey,verbosity:e?.verbosity??this.verbosity};e?.prediction!==void 0&&(i.prediction=e.prediction),this.service_tier!==void 0&&(i.service_tier=this.service_tier),e?.service_tier!==void 0&&(i.service_tier=e.service_tier);let o=this._getReasoningParams(e);return o!==void 0&&o.effort!==void 0&&(i.reasoning_effort=o.effort),gu(i.model)?i.max_completion_tokens=this.maxTokens===-1?void 0:this.maxTokens:i.max_tokens=this.maxTokens===-1?void 0:this.maxTokens,i}async _generate(e,t,n){let s={},i=this.invocationParams(t),o=Sp(e,this.model);if(i.stream){let a=this._streamResponseChunks(e,t,n),u={};for await(let g of a){g.message.response_metadata={...g.generationInfo,...g.message.response_metadata};let b=g.generationInfo?.completion??0;u[b]===void 0?u[b]=g:u[b]=u[b].concat(g)}let c=Object.entries(u).sort(([g],[b])=>parseInt(g,10)-parseInt(b,10)).map(([g,b])=>b),{functions:l,function_call:p}=this.invocationParams(t),h=await this._getEstimatedTokenCountFromPrompt(e,l,p),f=await this._getNumTokensFromGenerations(c);return s.input_tokens=h,s.output_tokens=f,s.total_tokens=h+f,{generations:c,llmOutput:{estimatedTokenUsage:{promptTokens:s.input_tokens,completionTokens:s.output_tokens,totalTokens:s.total_tokens}}}}else{let a=await this.completionWithRetry({...i,stream:!1,messages:o},{signal:t?.signal,...t?.options}),{completion_tokens:u,prompt_tokens:c,total_tokens:l,prompt_tokens_details:p,completion_tokens_details:h}=a?.usage??{};u&&(s.output_tokens=(s.output_tokens??0)+u),c&&(s.input_tokens=(s.input_tokens??0)+c),l&&(s.total_tokens=(s.total_tokens??0)+l),(p?.audio_tokens!==null||p?.cached_tokens!==null)&&(s.input_token_details={...p?.audio_tokens!==null&&{audio:p?.audio_tokens},...p?.cached_tokens!==null&&{cache_read:p?.cached_tokens}}),(h?.audio_tokens!==null||h?.reasoning_tokens!==null)&&(s.output_token_details={...h?.audio_tokens!==null&&{audio:h?.audio_tokens},...h?.reasoning_tokens!==null&&{reasoning:h?.reasoning_tokens}});let f=[];for(let g of a?.choices??[]){let _={text:g.message?.content??"",message:this._convertCompletionsMessageToBaseMessage(g.message??{role:"assistant"},a)};_.generationInfo={...g.finish_reason?{finish_reason:g.finish_reason}:{},...g.logprobs?{logprobs:g.logprobs}:{}},jt(_.message)&&(_.message.usage_metadata=s),_.message=new ue(Object.fromEntries(Object.entries(_.message).filter(([I])=>!I.startsWith("lc_")))),f.push(_)}return{generations:f,llmOutput:{tokenUsage:{promptTokens:s.input_tokens,completionTokens:s.output_tokens,totalTokens:s.total_tokens}}}}}async*_streamResponseChunks(e,t,n){let s=Sp(e,this.model),i={...this.invocationParams(t,{streaming:!0}),messages:s,stream:!0},o,a=await this.completionWithRetry(i,t),u;for await(let c of a){let l=c?.choices?.[0];if(c.usage&&(u=c.usage),!l)continue;let{delta:p}=l;if(!p)continue;let h=this._convertCompletionsDeltaToBaseMessageChunk(p,c,o);o=p.role??o;let f={prompt:t.promptIndex??0,completion:l.index??0};if(typeof h.content!="string"){console.log("[WARNING]: Received non-string content from OpenAI. This is currently not supported.");continue}let g={...f};l.finish_reason!=null&&(g.finish_reason=l.finish_reason,g.system_fingerprint=c.system_fingerprint,g.model_name=c.model,g.service_tier=c.service_tier),this.logprobs&&(g.logprobs=l.logprobs);let b=new ht({message:h,text:h.content,generationInfo:g});yield b,await n?.handleLLMNewToken(b.text??"",f,void 0,void 0,void 0,{chunk:b})}if(u){let c={...u.prompt_tokens_details?.audio_tokens!==null&&{audio:u.prompt_tokens_details?.audio_tokens},...u.prompt_tokens_details?.cached_tokens!==null&&{cache_read:u.prompt_tokens_details?.cached_tokens}},l={...u.completion_tokens_details?.audio_tokens!==null&&{audio:u.completion_tokens_details?.audio_tokens},...u.completion_tokens_details?.reasoning_tokens!==null&&{reasoning:u.completion_tokens_details?.reasoning_tokens}};yield new ht({message:new Mt({content:"",response_metadata:{usage:{...u}},usage_metadata:{input_tokens:u.prompt_tokens,output_tokens:u.completion_tokens,total_tokens:u.total_tokens,...Object.keys(c).length>0&&{input_token_details:c},...Object.keys(l).length>0&&{output_token_details:l}}}),text:""})}if(t.signal?.aborted)throw new Error("AbortError")}async completionWithRetry(e,t){let n=this._getClientOptions(t),s=e.response_format&&e.response_format.type==="json_schema";return this.caller.call(async()=>{try{return s&&!e.stream?await this.client.chat.completions.parse(e,n):await this.client.chat.completions.create(e,n)}catch(i){throw ri(i)}})}_convertCompletionsMessageToBaseMessage(e,t){let n=e.tool_calls;switch(e.role){case"assistant":{let s=[],i=[];for(let c of n??[])try{s.push(uu(c,{returnId:!0}))}catch(l){i.push(cu(c,l.message))}let o={function_call:e.function_call,tool_calls:n};this.__includeRawResponse!==void 0&&(o.__raw_response=t);let a={model_name:t.model,...t.system_fingerprint?{usage:{...t.usage},system_fingerprint:t.system_fingerprint}:{}};e.audio&&(o.audio=e.audio);let u=og(e.content||"",t.choices?.[0]?.message);return new ue({content:u,tool_calls:s,invalid_tool_calls:i,additional_kwargs:o,response_metadata:a,id:t.id})}default:return new Su(e.content||"",e.role??"unknown")}}_convertCompletionsDeltaToBaseMessageChunk(e,t,n){let s=e.role??n,i=e.content??"",o;e.function_call?o={function_call:e.function_call}:e.tool_calls?o={tool_calls:e.tool_calls}:o={},this.__includeRawResponse&&(o.__raw_response=t),e.audio&&(o.audio={...e.audio,index:t.choices[0].index});let a={usage:{...t.usage}};if(s==="user")return new mf({content:i,response_metadata:a});if(s==="assistant"){let u=[];if(Array.isArray(e.tool_calls))for(let c of e.tool_calls)u.push({name:c.function?.name,args:c.function?.arguments,id:c.id,index:c.index,type:"tool_call_chunk"});return new Mt({content:i,tool_call_chunks:u,additional_kwargs:o,id:t.id,response_metadata:a})}else return s==="system"?new Cu({content:i,response_metadata:a}):s==="developer"?new Cu({content:i,response_metadata:a,additional_kwargs:{__openai_role__:"developer"}}):s==="function"?new df({content:i,additional_kwargs:o,name:e.name,response_metadata:a}):s==="tool"?new ff({content:i,additional_kwargs:o,tool_call_id:e.tool_call_id,response_metadata:a}):new hf({content:i,role:s,response_metadata:a})}},mu=class r extends fo{get lc_serializable_keys(){return[...super.lc_serializable_keys,"useResponsesApi"]}constructor(e){super(e),Object.defineProperty(this,"fields",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"useResponsesApi",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"responses",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"completions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.useResponsesApi=e?.useResponsesApi??!1,this.responses=e?.responses??new ho(e),this.completions=e?.completions??new mo(e)}_useResponsesApi(e){let t=e?.tools?.some(hu),n=e?.previous_response_id!=null||e?.text!=null||e?.truncation!=null||e?.include!=null||e?.reasoning?.summary!=null||this.reasoning?.summary!=null,s=e?.tools?.some(Ip);return this.useResponsesApi||t||n||s}getLsParams(e){let t=this._combineCallOptions(e);return this._useResponsesApi(e)?this.responses.getLsParams(t):this.completions.getLsParams(t)}invocationParams(e){let t=this._combineCallOptions(e);return this._useResponsesApi(e)?this.responses.invocationParams(t):this.completions.invocationParams(t)}async _generate(e,t,n){return this._useResponsesApi(t)?this.responses._generate(e,t):this.completions._generate(e,t,n)}async*_streamResponseChunks(e,t,n){if(this._useResponsesApi(t)){yield*this.responses._streamResponseChunks(e,this._combineCallOptions(t),n);return}yield*this.completions._streamResponseChunks(e,this._combineCallOptions(t),n)}withConfig(e){let t=new r(this.fields);return t.defaultOptions={...this.defaultOptions,...e},t}};var Aw=r=>r();function ug(r){return typeof Headers<"u"&&r!==null&&typeof r=="object"&&Object.prototype.toString.call(r)==="[object Headers]"}function bu(r){let e=Aw(()=>{if(ug(r))return r;if(Array.isArray(r))return new Headers(r);if(typeof r=="object"&&r!==null&&"values"in r&&ug(r.values))return r.values;if(typeof r=="object"&&r!==null){let t=Object.entries(r).filter(([,n])=>typeof n=="string").map(([n,s])=>[n,s]);return new Headers(t)}return new Headers});return Object.fromEntries(e.entries())}var Np={openAIApiKey:"openai_api_key",openAIApiVersion:"openai_api_version",openAIBasePath:"openai_api_base",deploymentName:"deployment_name",azureOpenAIEndpoint:"azure_endpoint",azureOpenAIApiVersion:"openai_api_version",azureOpenAIBasePath:"openai_api_base",azureOpenAIApiDeploymentName:"deployment_name"},jp={azureOpenAIApiKey:"AZURE_OPENAI_API_KEY"},Mp=["azureOpenAIApiKey","azureOpenAIApiVersion","azureOpenAIBasePath","azureOpenAIEndpoint","azureOpenAIApiInstanceName","azureOpenAIApiDeploymentName","deploymentName","openAIApiKey","openAIApiVersion"];function Dp(r){if(this.azureOpenAIApiKey=r?.azureOpenAIApiKey??r?.openAIApiKey??r?.apiKey??pe("AZURE_OPENAI_API_KEY"),this.azureOpenAIApiInstanceName=r?.azureOpenAIApiInstanceName??pe("AZURE_OPENAI_API_INSTANCE_NAME"),this.azureOpenAIApiDeploymentName=r?.azureOpenAIApiDeploymentName??r?.deploymentName??pe("AZURE_OPENAI_API_DEPLOYMENT_NAME"),this.azureOpenAIApiVersion=r?.azureOpenAIApiVersion??r?.openAIApiVersion??pe("AZURE_OPENAI_API_VERSION"),this.azureOpenAIBasePath=r?.azureOpenAIBasePath??pe("AZURE_OPENAI_BASE_PATH"),this.azureOpenAIEndpoint=r?.azureOpenAIEndpoint??pe("AZURE_OPENAI_ENDPOINT"),this.azureADTokenProvider=r?.azureADTokenProvider,!this.azureOpenAIApiKey&&!this.apiKey&&!this.azureADTokenProvider)throw new Error("Azure OpenAI API key or Token Provider not found")}function cg(r){if(!this.client){let t={azureOpenAIApiDeploymentName:this.azureOpenAIApiDeploymentName,azureOpenAIApiInstanceName:this.azureOpenAIApiInstanceName,azureOpenAIApiKey:this.azureOpenAIApiKey,azureOpenAIBasePath:this.azureOpenAIBasePath,azureADTokenProvider:this.azureADTokenProvider,baseURL:this.clientConfig.baseURL,azureOpenAIEndpoint:this.azureOpenAIEndpoint},n=Vr(t),s={...this.clientConfig,baseURL:n,timeout:this.timeout,maxRetries:0};this.azureADTokenProvider||(s.apiKey=t.azureOpenAIApiKey),s.baseURL||delete s.baseURL;let i=yf();(i==="node"||i==="deno")&&(i=`(${i}/${process.version}; ${process.platform}; ${process.arch})`);let o=bu(s.defaultHeaders);s.defaultHeaders={...s.defaultHeaders,"User-Agent":o["User-Agent"]?`langchainjs-azure-openai/2.0.0 (${i})${o["User-Agent"]}`:`langchainjs-azure-openai/2.0.0 (${i})`},this.client=new Ln({apiVersion:this.azureOpenAIApiVersion,azureADTokenProvider:this.azureADTokenProvider,deployment:this.azureOpenAIApiDeploymentName,...s})}let e={...this.clientConfig,...r};return this.azureOpenAIApiKey&&(e.headers={"api-key":this.azureOpenAIApiKey,...e.headers},e.query={"api-version":this.azureOpenAIApiVersion,...e.query}),e}function $p(r){let e=r;function t(n){return typeof n=="object"&&n!=null}if(t(e)&&t(e.kwargs)){if(delete e.kwargs.azure_openai_base_path,delete e.kwargs.azure_openai_api_deployment_name,delete e.kwargs.azure_openai_api_key,delete e.kwargs.azure_openai_api_version,delete e.kwargs.azure_open_ai_base_path,!e.kwargs.azure_endpoint&&this.azureOpenAIEndpoint&&(e.kwargs.azure_endpoint=this.azureOpenAIEndpoint),!e.kwargs.azure_endpoint&&this.azureOpenAIBasePath){let n=this.azureOpenAIBasePath.split("/openai/deployments/");if(n.length===2&&n[0].startsWith("http")){let[s]=n;e.kwargs.azure_endpoint=s}}if(!e.kwargs.azure_endpoint&&this.azureOpenAIApiInstanceName&&(e.kwargs.azure_endpoint=`https://${this.azureOpenAIApiInstanceName}.openai.azure.com/`),!e.kwargs.deployment_name&&this.azureOpenAIApiDeploymentName&&(e.kwargs.deployment_name=this.azureOpenAIApiDeploymentName),!e.kwargs.deployment_name&&this.azureOpenAIBasePath){let n=this.azureOpenAIBasePath.split("/openai/deployments/");if(n.length===2){let[,s]=n;e.kwargs.deployment_name=s}}e.kwargs.azure_endpoint&&e.kwargs.deployment_name&&e.kwargs.openai_api_base&&delete e.kwargs.openai_api_base,e.kwargs.azure_openai_api_instance_name&&e.kwargs.azure_endpoint&&delete e.kwargs.azure_openai_api_instance_name}return e}var Tp=class extends ho{_llmType(){return"azure_openai"}get lc_aliases(){return{...super.lc_aliases,...Np}}get lc_secrets(){return{...super.lc_secrets,...jp}}get lc_serializable_keys(){return[...super.lc_serializable_keys,...Mp]}getLsParams(e){let t=super.getLsParams(e);return t.ls_provider="azure",t}constructor(e){super(e),Object.defineProperty(this,"azureOpenAIApiVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureADTokenProvider",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiInstanceName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiDeploymentName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIBasePath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIEndpoint",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Dp.call(this,e)}_getClientOptions(e){return cg.call(this,e)}toJSON(){return $p.call(this,super.toJSON())}},Rp=class extends mo{_llmType(){return"azure_openai"}get lc_aliases(){return{...super.lc_aliases,...Np}}get lc_secrets(){return{...super.lc_secrets,...jp}}get lc_serializable_keys(){return[...super.lc_serializable_keys,...Mp]}getLsParams(e){let t=super.getLsParams(e);return t.ls_provider="azure",t}constructor(e){super(e),Object.defineProperty(this,"azureOpenAIApiVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureADTokenProvider",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiInstanceName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiDeploymentName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIBasePath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIEndpoint",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Dp.call(this,e)}_getClientOptions(e){return cg.call(this,e)}toJSON(){return $p.call(this,super.toJSON())}},yu=class extends mu{_llmType(){return"azure_openai"}get lc_aliases(){return{...super.lc_aliases,...Np}}get lc_secrets(){return{...super.lc_secrets,...jp}}get lc_serializable_keys(){return[...super.lc_serializable_keys,...Mp]}getLsParams(e){let t=super.getLsParams(e);return t.ls_provider="azure",t}constructor(e){super({...e,completions:new Rp(e),responses:new Tp(e)}),Object.defineProperty(this,"azureOpenAIApiVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureADTokenProvider",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiInstanceName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiDeploymentName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIBasePath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIEndpoint",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Dp.call(this,e)}_getStructuredOutputMethod(e){let t={...e};return this.model.startsWith("gpt-4o")&&t?.method===void 0?"functionCalling":super._getStructuredOutputMethod(t)}toJSON(){return $p.call(this,super.toJSON())}};var Lp=class extends Qn{static lc_name(){return"DallEAPIWrapper"}constructor(e){e?.responseFormat!==void 0&&["url","b64_json"].includes(e.responseFormat)&&(e.dallEResponseFormat=e.responseFormat,e.responseFormat="content"),super(e),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"dalle_api_wrapper"}),Object.defineProperty(this,"description",{enumerable:!0,configurable:!0,writable:!0,value:"A wrapper around OpenAI DALL-E API. Useful for when you need to generate images from a text description. Input should be an image description."}),Object.defineProperty(this,"client",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"model",{enumerable:!0,configurable:!0,writable:!0,value:"dall-e-3"}),Object.defineProperty(this,"style",{enumerable:!0,configurable:!0,writable:!0,value:"vivid"}),Object.defineProperty(this,"quality",{enumerable:!0,configurable:!0,writable:!0,value:"standard"}),Object.defineProperty(this,"n",{enumerable:!0,configurable:!0,writable:!0,value:1}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:"1024x1024"}),Object.defineProperty(this,"dallEResponseFormat",{enumerable:!0,configurable:!0,writable:!0,value:"url"}),Object.defineProperty(this,"user",{enumerable:!0,configurable:!0,writable:!0,value:void 0});let t=e?.apiKey??e?.openAIApiKey??pe("OPENAI_API_KEY"),n=e?.organization??pe("OPENAI_ORGANIZATION"),s={apiKey:t,organization:n,dangerouslyAllowBrowser:!0,baseURL:e?.baseUrl};this.client=new z(s),this.model=e?.model??e?.modelName??this.model,this.style=e?.style??this.style,this.quality=e?.quality??this.quality,this.n=e?.n??this.n,this.size=e?.size??this.size,this.dallEResponseFormat=e?.dallEResponseFormat??this.dallEResponseFormat,this.user=e?.user}processMultipleGeneratedUrls(e){return this.dallEResponseFormat==="url"?e.flatMap(t=>t.data?.flatMap(s=>s.url?{type:"image_url",image_url:s.url}:[]).filter(s=>s!==void 0&&s.type==="image_url"&&typeof s.image_url=="string"&&s.image_url!==void 0)??[]):e.flatMap(t=>t.data?.flatMap(s=>s.b64_json?{type:"image_url",image_url:{url:s.b64_json}}:[]).filter(s=>s!==void 0&&s.type==="image_url"&&typeof s.image_url=="object"&&"url"in s.image_url&&typeof s.image_url.url=="string"&&s.image_url.url!==void 0)??[])}async _call(e){let t={model:this.model,prompt:e,n:1,size:this.size,response_format:this.dallEResponseFormat,style:this.style,quality:this.quality,user:this.user};if(this.n>1){let i=await Promise.all(Array.from({length:this.n}).map(()=>this.client.images.generate(t)));return this.processMultipleGeneratedUrls(i)}let n=await this.client.images.generate(t),s="";return this.dallEResponseFormat==="url"?[s]=n.data?.map(i=>i.url).filter(i=>i!=="undefined")??[]:[s]=n.data?.map(i=>i.b64_json).filter(i=>i!=="undefined")??[],s}};Object.defineProperty(Lp,"toolName",{enumerable:!0,configurable:!0,writable:!0,value:"dalle_api_wrapper"});var mg={"gpt-4.1":{deploymentName:"gpt-4.1",apiVersion:"2024-10-21",pathSegment:"models/gpt-4.1/openai/deployments/gpt-4.1/chat/completions"},"gpt-4.1-mini":{deploymentName:"gpt-4.1-mini",apiVersion:"2024-10-21",pathSegment:"models/gpt-4.1-mini/openai/deployments/gpt-4.1-mini/chat/completions"},"text-embedding-ada-002":{deploymentName:"text-embedding-ada-002",apiVersion:"2024-10-21",pathSegment:"models/text-embedding-ada-002/openai/deployments/text-embedding-ada-002/embeddings"}},gg={default:"gpt-4.1",fast:"gpt-4.1-mini"},Pw={default:"text-embedding-ada-002"},bg=(r,e)=>{let t=mg[e];return`${r}/${t.pathSegment}?api-version=${t.apiVersion}`};function yg(){let r=zp.getDefault().helperServices;if(!r?.aiUtilityServices?.url)throw new Error("AI Utility Service URL is not defined in the portal's helper services.");return r.aiUtilityServices.url}function Ew(r="default"){return bg(yg(),gg[r])}function Iw(r="default"){return bg(yg(),Pw[r])}var kw=async r=>{let e=await Sw(),t=Iw("default"),n=zp.getDefault(),s=(await dg.getCredential(`${n.url}/sharing`)).token,i={type:"generateEmbeddings",layersAndFieldsRegistry:r,auth:{apiUrl:t,token:s}};return e.postMessage(i),await new Promise((o,a)=>{let u=l=>{l.data==="completed"&&(e.removeEventListener("message",u),o())},c=l=>{e.removeEventListener("message",u),a(l instanceof Error?l:new Error("Embeddings worker error"))};e.addEventListener("message",u),e.addEventListener("error",c,{once:!0})}),e},Sw=async()=>{let r=(await import("./GERMHSWI.js")).default;return new r},lg=(r,e)=>e,Cw=lt.Root({userInput:lt(),messages:lt({reducer:Rr,default:()=>[]}),pendingIntents:lt({default:()=>[],reducer:lg}),currentIntent:lt({default:()=>"none",reducer:lg})}),wr=async(r,e)=>{await $l("trace_message",r,e)},LL=async(r,e)=>{await $l("graph_ux_suggestion",r,e)},Tw=r=>{r.currentIntent="none",r.pendingIntents=[]},Rw=async(r,e)=>{if(r.userInput){let n=new ot(r.userInput.trim());r.messages=[...r.messages,n],Tw(r)}let t=e?.configurable?.services.agentRegistry.list().map(n=>n.agent.id)??[];return await wr({text:`Available agents: ${[...t].join(", ")}`},e),await wr({text:"Analyzing user input"},e),r},Nw=async(r,e)=>(await wr({text:"Exiting..."},e),r),jw=r=>{if(r.pendingIntents.length===0)return{...r,currentIntent:"none"};let[e,...t]=r.pendingIntents;return{...r,currentIntent:e,pendingIntents:t}},pg=4e3,Mw=async(r,e)=>{let t=e?.configurable,{agentRegistry:n}=t.services,s=n?.get(r.currentIntent);if(!s)return console.warn(`No agent found for intent: ${r.currentIntent}`),r;await wr({text:`Executing registered agent: ${s.agent.name}`},e);let i={...e??{},configurable:{...t??{},agentId:s.agent.id,context:s.getContext?await s.getContext():void 0}},o=await s.agent.createGraph().compile().invoke({messages:[...r.messages]},i);await wr({text:`Finished executing registered agent: ${s.agent.name}`},e);let a=typeof o?.outputMessage=="string"?o.outputMessage.trim():"";if(!a)return r;let u=a.length>pg?`${a.slice(0,pg-14)}
131
- [truncated]`:a;return{...r,messages:[...r.messages,new ue(u)]}},Dw=(r,e,t)=>{let n=r[e];return n?typeof n=="function"?n():Promise.resolve(n):new Promise((s,i)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(i.bind(null,new Error("Unknown variable dynamic import: "+e+(e.split("/").length!==t?". Note that variables only represent file names one level deep.":""))))})},Bp=async r=>(await Dw(Object.assign({"./field_descriptions_prompt.md":()=>import("./SB67G4Q4.js"),"./intent_prompt.md":()=>import("./MPRS2EHZ.js"),"./layer_descriptions_prompt.md":()=>import("./LLYWEDKO.js")}),`./${r}.md`,2)).default,$w=(r,e=3)=>r.filter(t=>t instanceof ot).slice(-e),Lw=r=>{let e=-1;for(let t=r.length-1;t>=0;t--)if(r[t]instanceof ot){e=t;break}return e===-1?"":r.slice(e+1).filter(t=>t instanceof ue).map(t=>t.content).join(`
132
- `)},Fw=["x-stainless-package-version","x-stainless-timeout","x-stainless-retry-count","x-stainless-lang","x-stainless-os","x-stainless-arch","x-stainless-runtime","x-stainless-runtime-version","x-stainless-helper-method","api-key"],Uw=r=>async(e,t)=>{let n=new Headers(t?.headers);return Fw.forEach(s=>n.delete(s)),r&&r.length>0&&n.set("X-Esri-Authorization",`Bearer ${r}`),await fetch(e,{...t,headers:n})},Kp=async(r="default",e=0)=>{let t=zp.getDefault(),n=await dg.getCredential(`${t.url}/sharing`),s=gg[r],i=Ew(r),o=mg[s];return new yu({temperature:e,azureOpenAIApiKey:"x",azureOpenAIBasePath:i,azureOpenAIApiDeploymentName:o.deploymentName,azureOpenAIApiVersion:o.apiVersion,model:s,configuration:{fetch:Uw(n.token)}})},zw=r=>{let e=new Set;for(let t of r)if(jt(t)){let n=t;n.tool_calls&&n.tool_calls.length>0&&n.tool_calls.forEach(s=>{s.id&&e.add(s.id)})}return r.filter(t=>{if(wo(t)){let n=t;return e.has(n.tool_call_id)}return!0})},Wp=(r,e)=>{let t=Lu.fromTemplate(r);return Xr.fromMessages([t,...e])},Bw=async r=>{let{promptText:e,modelTier:t,temperature:n,messages:s}=r,i=Wp(e,s??[]),o=await Kp(t,n);return i.pipe(o)},FL=async r=>{let{promptText:e,modelTier:t="default",temperature:n=0,messages:s,inputVariables:i}=r,o=await(await Bw({promptText:e,modelTier:t,temperature:n,messages:s})).invoke(i??{});if(typeof o=="string")return o;let a=o.content;return typeof a=="string"?a:JSON.stringify(a)},Hp=async r=>{let{promptText:e,modelTier:t="default",temperature:n=0,messages:s,inputVariables:i,schema:o}=r,a=Wp(e,s??[]),u=(await Kp(t,n)).withStructuredOutput(o);return await a.pipe(u).invoke(i??{})},UL=async r=>{let{promptText:e,modelTier:t="default",temperature:n=0,messages:s,inputVariables:i,tools:o}=r,a=o.length>0?zw(s??[]):s??[],u=Wp(e,a),c=await Kp(t,n);return await u.pipe(c.bindTools(o)).invoke(i??{})},Kw=oe.object({id:oe.string().min(1),name:oe.string().min(1),description:oe.string().min(1)});oe.array(Kw);var Ww=r=>{let e=r.map(n=>n.id),t=oe.enum(e);return oe.object({intents:oe.array(t)})},Hw=async(r,e)=>{try{await wr({text:"Asking LLM to detect intents"},e);let t=await Bp("intent_prompt"),n=(e?.configurable?.services.agentRegistry?.list()??[]).map(({agent:f})=>({id:f.id,name:f.name,description:f.description}));if(!n.length)return await wr({text:"No agents registered; skipping intent detection"},e),{...r,currentIntent:"none",pendingIntents:[]};let s=n.map(f=>JSON.stringify(f)).join(`
133
- `),i=n.length,o=Ww(n),a={maxIntents:i,registeredAgents:s},u=await Hp({promptText:t,modelTier:"fast",schema:o,messages:$w(r.messages),inputVariables:a}),c=new Set,l=(u.intents??[]).filter(f=>c.has(f)?!1:(c.add(f),!0)).slice(0,i),p=l[0]??"none",h={...r,currentIntent:p,pendingIntents:l};return await wr({text:`Intents came back as: ${l.join(", ")||"none"}`},e),h}catch(t){throw await wr({text:"Error during intent detection"},e),new Error(`Error during intent detection: ${t instanceof Error?t.message:String(t)}`)}},Vw=()=>new mn(Cw).addNode("ingestInput",Rw).addNode("intentLLM",Hw).addNode("intentDispatcher",jw).addNode("executeRegisteredAgent",Mw).addNode("exit",Nw).addEdge(q,"ingestInput").addEdge("ingestInput","intentLLM").addEdge("intentLLM","intentDispatcher").addConditionalEdges("intentDispatcher",r=>r.currentIntent==="none"?"exit":"executeRegisteredAgent").addEdge("executeRegisteredAgent","intentDispatcher").addEdge("exit",K),Fp=class{constructor(){this.agentRegistry=new Map}register(e){let{agent:t}=e;if(this.agentRegistry.has(t.id))throw new Error(`Duplicate agent id: ${t.id}`);this.agentRegistry.set(t.id,e)}get(e){return this.agentRegistry.get(e)}list(){return[...this.agentRegistry.values()]}},Up=class{constructor(e,t){this.graph=e,this.config={...t}}async waitForUser(){return await new Promise((e,t)=>{this.resolveWait=e,this.rejectWait=t})}handle(e,t){try{let n={agentId:e.agentId,id:e.id,payload:t},s=this.graph.streamEvents(null,{...this.config,configurable:{...this.config.configurable,hitlResponse:n},subgraphs:!0,version:"v2"});this.resolveWait?.(s)}catch(n){this.rejectWait?.(n)}finally{this.resolveWait=void 0,this.rejectWait=void 0}}cancel(){this.rejectWait&&(this.rejectWait(new Error("User cancelled HITL")),this.resolveWait=void 0,this.rejectWait=void 0)}},Gw=pt.object({name:pt.string(),description:pt.string(),valueType:pt.string(),alias:pt.string()}),qw=pt.object({fields:pt.array(Gw)});function fg(r,e){let t=new Map;for(let n of r.fields){let s=e.fields.find(o=>o.name===n.name),i={name:n.name,type:n.type,alias:s?.alias??n.alias??"",description:s?.description??n.description??"",valueType:s?.valueType??n.valueType??""};t.set(n.name,i)}return t}var Jw=async r=>{let e=await Bp("field_descriptions_prompt"),t=r.fields.filter(i=>!(i.alias&&i.description)).map(i=>{let{name:o,type:a,alias:u,description:c}=i;return[`Name: ${o}`,`Type: ${a}`,`Alias: ${u}`,`Description: ${c??"N/A"}`].join(", ")}).join(`
134
- `);if(t.length===0)return fg(r,{fields:[]});let n={existingItemTitle:r.portalItem?.title,existingItemDescription:r.portalItem?.description,existingLayerTitle:r.title,existingLayerDescription:r.portalItem?.description,fieldInformation:t},s=await Hp({promptText:e,modelTier:"fast",schema:qw,inputVariables:n});return fg(r,s)},Xw=pt.object({title:pt.string(),description:pt.string(),name:pt.string().nullable()}),Yw=async(r,e)=>{let t=await Bp("layer_descriptions_prompt"),n=Array.from(e.values()),s={fieldInformation:JSON.stringify(n,null,2),existingLayerTitle:r.title,existingLayerDescription:r.portalItem?.description,existingLayerSnippet:r.portalItem?.snippet,layerGeometryType:r.geometryType};return{...await Hp({promptText:t,modelTier:"fast",schema:Xw,inputVariables:s}),name:r.title??null}},Zw=async r=>{let e=r.allLayers.toArray(),t=[],n=new Map;for(let s of e)if(s instanceof Ow){let i=(async()=>{let o=await Jw(s),a=await Yw(s,o);n.set(s.id,{layerItem:a,fieldRegistry:o})})();t.push(i)}return await Promise.all(t),n};async function Qw(r,e,t){let n=`req-${Date.now()}`,s={type:"layerSearch",searchQuery:r,requestId:n};return await new Promise(i=>{let o=a=>{if(a.data.requestId!==n)return;let u=a.data.results.filter(([,c])=>c>=t).map(([c,l])=>({id:c.id??"",score:l}));i(u)};e.addEventListener("message",o,{once:!0}),e.postMessage(s)})}function e0(r){let{worker:e}=r;return{async searchLayers({text:t,minScore:n}){return await Qw(t,e,n)}}}async function t0(r,e,t,n,s){let i=`req-${Date.now()}`,o={type:"fieldSearch",searchQuery:r,layerIdForFieldsSearch:e,requestId:i};return await new Promise(a=>{let u=c=>{if(c.data.requestId!==i)return;let l=c.data.results.map(({layerId:p,results:h})=>{let f=h.filter(([,g])=>g>=n).map(([g,b])=>({name:g.id??"",score:b})).sort((g,b)=>b.score-g.score).slice(0,s);return{layerId:p,results:f}});a(l)};t.addEventListener("message",u,{once:!0}),t.postMessage(o)})}function r0(r){let{worker:e}=r;return{async searchFields({text:t,layerIds:n,minScore:s,topResults:i}){return await t0(t,n,e,s,i)}}}var hg=class r{constructor(e){this.deps=e,this.orchestratorReady=!1,this.chatHistory=[],this.threadId="",this.agentRegistry=new Fp,this.streamEpoch=0}static async init(e){let t=new r(e);if(e.view?.map){let n=await Zw(e.view.map);t.layersAndFieldsRegistry=n,t.embeddingsWorker=await kw(n)}return e.agents?.forEach(n=>{t.agentRegistry.register(n)}),t.orchestratorReady=!0,t}async*ask(e){if(!this.orchestratorReady)throw new Error("Orchestrator is not ready yet.");if(!this.agentRegistry.list().length)throw new Error("Orchestrator has no registered agents.");if(++this.streamEpoch,!e.trim())return;this.threadId=String(Date.now()),this.graph||(this.graph=Vw().compile({checkpointer:new ss}));let t=this.embeddingsWorker?e0({worker:this.embeddingsWorker}):void 0,n=this.embeddingsWorker?r0({worker:this.embeddingsWorker}):void 0,s={version:"v2",streamMode:"custom",configurable:{thread_id:this.threadId,hitlResponse:null,services:{layerSearch:t,fieldSearch:n,layersAndFieldsRegistry:this.layersAndFieldsRegistry,agentRegistry:this.agentRegistry,portal:this.deps.portal}},subgraphs:!0},i=this.graph?.streamEvents({userInput:e,messages:this.chatHistory},s),o=++this.streamEpoch;for(yield*this.pipeStream(i,o);;){let u=(await this.graph.getState(s,{subgraphs:!0})).tasks.find(c=>c.interrupts.length>0)?.interrupts[0]?.value;if(!u)break;this.currentInterrupt=u,this.interruptHandler=new Up(this.graph,s),yield{runId:this.threadId,timestamp:Date.now(),type:"interrupt",interrupt:u};try{let c=await this.interruptHandler.waitForUser(),l=++this.streamEpoch;yield*this.pipeStream(c,l)}catch(c){if(c){yield{runId:this.threadId,timestamp:Date.now(),type:"error",error:{message:c?.message}};return}yield{runId:this.threadId,timestamp:Date.now(),type:"cancelled"};return}}let a=(await this.graph.getState(s,{subgraphs:!0})).values;this.chatHistory=a.messages.length?a.messages:this.chatHistory,yield{runId:this.threadId,timestamp:Date.now(),type:"completed",result:{content:Lw(a.messages)}}}newConversation(){this.chatHistory=[]}resumeInterrupt(e){if(!this.currentInterrupt||!this.interruptHandler)throw new Error("No pending interrupt to resume.");this.interruptHandler.handle(this.currentInterrupt,e)}cancelInterrupt(){this.interruptHandler&&this.interruptHandler.cancel()}async*pipeStream(e,t){for await(let n of e){if(t!==this.streamEpoch){console.log("Stale stream detected, aborting.");break}n.event==="on_custom_event"&&n.name==="trace_message"?yield{runId:this.threadId,timestamp:Date.now(),type:"trace",data:n.data}:n.name==="graph_ux_suggestion"&&(yield{runId:this.threadId,timestamp:Date.now(),type:"ux-suggestion",suggestion:n.data})}}dispose(){this.embeddingsWorker&&(this.embeddingsWorker.terminate(),this.embeddingsWorker=void 0),this.orchestratorReady=!1}};return{a:pi,b:Or,c:Tb,d:lt,e:pt,f:q,g:K,h:Ee,i:Ce,j:Te,k:Ie,l:mn,m:Rr,n:wr,o:LL,p:FL,q:Hp,r:UL,s:hg}},"identity/IdentityManager","portal/Portal","layers/FeatureLayer",a)
125
+ `,r}function Jr(r){let e;return r.constructor.name===Jt.name?(e=new Error(r.message),e.name="TimeoutError"):r.constructor.name===fe.name?(e=new Error(r.message),e.name="AbortError"):r.status===400&&r.message.includes("tool_calls")?e=po(r,"INVALID_TOOL_RESULTS"):r.status===401?e=po(r,"MODEL_AUTHENTICATION"):r.status===429?e=po(r,"MODEL_RATE_LIMIT"):r.status===404?e=po(r,"MODEL_NOT_FOUND"):e=r,e}function Sp(r){if(r)return r==="any"||r==="required"?"required":r==="auto"?"auto":r==="none"?"none":typeof r=="string"?{type:"function",function:{name:r}}:r}function Pw(r,e){let t={...r};return Object.defineProperties(t,{$brand:{value:"auto-parseable-response-format",enumerable:!1},$parseRaw:{value:e,enumerable:!1}}),t}function eg(r,e,t){if(ai(r))return Qm(r,e,t);if(Du(r))return Pw({type:"json_schema",json_schema:{...t,name:e,strict:!0,schema:Lf(r,{cycles:"ref",reused:"ref",override(n){n.jsonSchema.title=e}})}},n=>$f(r,JSON.parse(n)));throw new Error("Unsupported schema response format")}function Ew(r){return r.anyOf!==void 0&&Array.isArray(r.anyOf)}function tg(r){let e=["namespace functions {",""];for(let t of r)t.description&&e.push(`// ${t.description}`),Object.keys(t.parameters.properties??{}).length>0?(e.push(`type ${t.name} = (_: {`),e.push(rg(t.parameters,0)),e.push("}) => any;")):e.push(`type ${t.name} = () => any;`),e.push("");return e.push("} // namespace functions"),e.join(`
126
+ `)}function rg(r,e){let t=[];for(let[n,s]of Object.entries(r.properties??{}))s.description&&e<2&&t.push(`// ${s.description}`),r.required?.includes(n)?t.push(`${n}: ${du(s,e)},`):t.push(`${n}?: ${du(s,e)},`);return t.map(n=>" ".repeat(e)+n).join(`
127
+ `)}function du(r,e){if(Ew(r))return r.anyOf.map(t=>du(t,e)).join(" | ");switch(r.type){case"string":return r.enum?r.enum.map(t=>`"${t}"`).join(" | "):"string";case"number":return r.enum?r.enum.map(t=>`${t}`).join(" | "):"number";case"integer":return r.enum?r.enum.map(t=>`${t}`).join(" | "):"number";case"boolean":return"boolean";case"null":return"null";case"object":return["{",rg(r,e+2),"}"].join(`
128
+ `);case"array":return r.items?`${du(r.items,e)}[]`:"any[]";default:return""}}function ng(r,e){let t;return kr(r)?t=Yo(r):t=r,t.type==="function"&&e?.strict!==void 0&&(t.function.strict=e.strict),t}function mu(r){return"type"in r&&r.type!=="function"&&r.type!=="custom"}function sg(r){return r!=null&&typeof r=="object"&&"type"in r&&r.type!=="function"}function ig(r){return typeof r=="object"&&r!==null&&"metadata"in r&&typeof r.metadata=="object"&&r.metadata!==null&&"customTool"in r.metadata&&typeof r.metadata.customTool=="object"&&r.metadata.customTool!==null}function Cp(r){return"type"in r&&r.type==="custom"&&"custom"in r&&typeof r.custom=="object"&&r.custom!==null}function og(r){if(r.type==="custom_tool_call")return{...r,type:"tool_call",call_id:r.id,id:r.call_id,name:r.name,isCustomTool:!0,args:{input:r.input}}}function ag(r){return r.type==="tool_call"&&"isCustomTool"in r&&r.isCustomTool===!0}function ug(r){let e=()=>{if(r.custom.format){if(r.custom.format.type==="grammar")return{type:"grammar",definition:r.custom.format.grammar.definition,syntax:r.custom.format.grammar.syntax};if(r.custom.format.type==="text")return{type:"text"}}};return{type:"custom",name:r.custom.name,description:r.custom.description,format:e()}}function cg(r){let e=()=>{if(r.format){if(r.format.type==="grammar")return{type:"grammar",grammar:{definition:r.format.definition,syntax:r.format.syntax}};if(r.format.type==="text")return{type:"text"}}};return{type:"custom",custom:{name:r.name,description:r.description,format:e()}}}function lg(r,e){if(e&&typeof e=="object"&&"images"in e&&Array.isArray(e.images)){let t=e.images.filter(n=>typeof n?.image_url?.url=="string").map(n=>({type:"image",url:n.image_url.url,source_type:"url"}));return[{type:"text",text:r,source_type:"text"},...t]}return r}function Tp(r){let e={...r?.input_tokens_details?.cached_tokens!=null&&{cache_read:r?.input_tokens_details?.cached_tokens}},t={...r?.output_tokens_details?.reasoning_tokens!=null&&{reasoning:r?.output_tokens_details?.reasoning_tokens}};return{input_tokens:r?.input_tokens??0,output_tokens:r?.output_tokens??0,total_tokens:r?.total_tokens??0,input_token_details:e,output_token_details:t}}var gu="__openai_function_call_ids__";function yu(r){return r?!!(/^o\d/.test(r??"")||r.startsWith("gpt-5")&&!r.startsWith("gpt-5-chat")):!1}function Iw(r){return r!==void 0&&typeof r.schema=="object"}function kw(r){return r.role!=="system"&&r.role!=="developer"&&r.role!=="assistant"&&r.role!=="user"&&r.role!=="function"&&r.role!=="tool"&&console.warn(`Unknown message role: ${r.role}`),r.role}function Np(r){let e=r._getType();switch(e){case"system":return"system";case"ai":return"assistant";case"human":return"user";case"function":return"function";case"tool":return"tool";case"generic":{if(!Nu.isInstance(r))throw new Error("Invalid generic chat message");return kw(r)}default:throw new Error(`Unknown message type: ${e}`)}}var pg={providerName:"ChatOpenAI",fromStandardTextBlock(r){return{type:"text",text:r.text}},fromStandardImageBlock(r){if(r.source_type==="url")return{type:"image_url",image_url:{url:r.url,...r.metadata?.detail?{detail:r.metadata.detail}:{}}};if(r.source_type==="base64")return{type:"image_url",image_url:{url:`data:${r.mime_type??""};base64,${r.data}`,...r.metadata?.detail?{detail:r.metadata.detail}:{}}};throw new Error(`Image content blocks with source_type ${r.source_type} are not supported for ChatOpenAI`)},fromStandardAudioBlock(r){if(r.source_type==="url"){let e=Su({dataUrl:r.url});if(!e)throw new Error(`URL audio blocks with source_type ${r.source_type} must be formatted as a data URL for ChatOpenAI`);let t=e.mime_type||r.mime_type||"",n;try{n=ku(t)}catch{throw new Error(`Audio blocks with source_type ${r.source_type} must have mime type of audio/wav or audio/mp3`)}if(n.type!=="audio"||n.subtype!=="wav"&&n.subtype!=="mp3")throw new Error(`Audio blocks with source_type ${r.source_type} must have mime type of audio/wav or audio/mp3`);return{type:"input_audio",input_audio:{format:n.subtype,data:e.data}}}if(r.source_type==="base64"){let e;try{e=ku(r.mime_type??"")}catch{throw new Error(`Audio blocks with source_type ${r.source_type} must have mime type of audio/wav or audio/mp3`)}if(e.type!=="audio"||e.subtype!=="wav"&&e.subtype!=="mp3")throw new Error(`Audio blocks with source_type ${r.source_type} must have mime type of audio/wav or audio/mp3`);return{type:"input_audio",input_audio:{format:e.subtype,data:r.data}}}throw new Error(`Audio content blocks with source_type ${r.source_type} are not supported for ChatOpenAI`)},fromStandardFileBlock(r){if(r.source_type==="url"){if(!Su({dataUrl:r.url}))throw new Error(`URL file blocks with source_type ${r.source_type} must be formatted as a data URL for ChatOpenAI`);return{type:"file",file:{file_data:r.url,...r.metadata?.filename||r.metadata?.name?{filename:r.metadata?.filename||r.metadata?.name}:{}}}}if(r.source_type==="base64")return{type:"file",file:{file_data:`data:${r.mime_type??""};base64,${r.data}`,...r.metadata?.filename||r.metadata?.name||r.metadata?.title?{filename:r.metadata?.filename||r.metadata?.name||r.metadata?.title}:{}}};if(r.source_type==="id")return{type:"file",file:{file_id:r.id}};throw new Error(`File content blocks with source_type ${r.source_type} are not supported for ChatOpenAI`)}};function Rp(r,e){return r.flatMap(t=>{let n=Np(t);n==="system"&&yu(e)&&(n="developer");let s=typeof t.content=="string"?t.content:t.content.map(o=>Iu(o)?Cu(o,pg):o),i={role:n,content:s};if(t.name!=null&&(i.name=t.name),t.additional_kwargs.function_call!=null&&(i.function_call=t.additional_kwargs.function_call,i.content=""),jt(t)&&t.tool_calls?.length?(i.tool_calls=t.tool_calls.map(ym),i.content=""):(t.additional_kwargs.tool_calls!=null&&(i.tool_calls=t.additional_kwargs.tool_calls),t.tool_call_id!=null&&(i.tool_call_id=t.tool_call_id)),t.additional_kwargs.audio&&typeof t.additional_kwargs.audio=="object"&&"id"in t.additional_kwargs.audio){let o={role:"assistant",audio:{id:t.additional_kwargs.audio.id}};return[i,o]}return i})}var fo=class extends zt{_llmType(){return"openai"}static lc_name(){return"ChatOpenAI"}get callKeys(){return[...super.callKeys,"options","function_call","functions","tools","tool_choice","promptIndex","response_format","seed","reasoning","reasoningEffort","service_tier"]}get lc_secrets(){return{apiKey:"OPENAI_API_KEY",organization:"OPENAI_ORGANIZATION"}}get lc_aliases(){return{apiKey:"openai_api_key",modelName:"model",reasoningEffort:"reasoning_effort"}}get lc_serializable_keys(){return["configuration","logprobs","topLogprobs","prefixMessages","supportsStrictToolCalling","modalities","audio","temperature","maxTokens","topP","frequencyPenalty","presencePenalty","n","logitBias","user","streaming","streamUsage","model","modelName","modelKwargs","stop","stopSequences","timeout","apiKey","cache","maxConcurrency","maxRetries","verbose","callbacks","tags","metadata","disableStreaming","zdrEnabled","reasoning","reasoningEffort","promptCacheKey","verbosity"]}getLsParams(e){let t=this.invocationParams(e);return{ls_provider:"openai",ls_model_name:this.model,ls_model_type:"chat",ls_temperature:t.temperature??void 0,ls_max_tokens:t.max_tokens??void 0,ls_stop:e.stop}}_identifyingParams(){return{model_name:this.model,...this.invocationParams(),...this.clientConfig}}identifyingParams(){return this._identifyingParams()}constructor(e){super(e??{}),Object.defineProperty(this,"temperature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"topP",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"frequencyPenalty",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"presencePenalty",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"n",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"logitBias",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"model",{enumerable:!0,configurable:!0,writable:!0,value:"gpt-3.5-turbo"}),Object.defineProperty(this,"modelKwargs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"stop",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"stopSequences",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"user",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"streaming",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"streamUsage",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"maxTokens",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"logprobs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"topLogprobs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"apiKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"organization",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"__includeRawResponse",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"client",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"clientConfig",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"supportsStrictToolCalling",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"audio",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"modalities",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reasoning",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"zdrEnabled",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"service_tier",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"promptCacheKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"verbosity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"defaultOptions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),this.apiKey=e?.apiKey??e?.configuration?.apiKey??te("OPENAI_API_KEY"),this.organization=e?.configuration?.organization??te("OPENAI_ORGANIZATION"),this.model=e?.model??e?.modelName??this.model,this.modelKwargs=e?.modelKwargs??{},this.timeout=e?.timeout,this.temperature=e?.temperature??this.temperature,this.topP=e?.topP??this.topP,this.frequencyPenalty=e?.frequencyPenalty??this.frequencyPenalty,this.presencePenalty=e?.presencePenalty??this.presencePenalty,this.logprobs=e?.logprobs,this.topLogprobs=e?.topLogprobs,this.n=e?.n??this.n,this.logitBias=e?.logitBias,this.stop=e?.stopSequences??e?.stop,this.stopSequences=this.stop,this.user=e?.user,this.__includeRawResponse=e?.__includeRawResponse,this.audio=e?.audio,this.modalities=e?.modalities,this.reasoning=e?.reasoning??e?.reasoningEffort?{effort:e.reasoningEffort}:void 0,this.maxTokens=e?.maxCompletionTokens??e?.maxTokens,this.disableStreaming=e?.disableStreaming===!0,this.streaming=e?.streaming===!0,this.promptCacheKey=e?.promptCacheKey??this.promptCacheKey,this.verbosity=e?.verbosity??this.verbosity,e?.streaming===!1&&(this.disableStreaming=!0),this.disableStreaming===!0&&(this.streaming=!1),this.streamUsage=e?.streamUsage??this.streamUsage,this.disableStreaming&&(this.streamUsage=!1),this.clientConfig={apiKey:this.apiKey,organization:this.organization,dangerouslyAllowBrowser:!0,...e?.configuration},e?.supportsStrictToolCalling!==void 0&&(this.supportsStrictToolCalling=e.supportsStrictToolCalling),e?.service_tier!==void 0&&(this.service_tier=e.service_tier),this.zdrEnabled=e?.zdrEnabled??!1}_getReasoningParams(e){if(!yu(this.model))return;let t;return this.reasoning!==void 0&&(t={...t,...this.reasoning}),e?.reasoning!==void 0&&(t={...t,...e.reasoning}),t}_getResponseFormat(e){return e&&e.type==="json_schema"&&e.json_schema.schema&&Ze(e.json_schema.schema)?eg(e.json_schema.schema,e.json_schema.name,{description:e.json_schema.description}):e}_combineCallOptions(e){return{...this.defaultOptions,...e??{}}}_getClientOptions(e){if(!this.client){let n={baseURL:this.clientConfig.baseURL},s=sr(n),i={...this.clientConfig,baseURL:s,timeout:this.timeout,maxRetries:0};i.baseURL||delete i.baseURL,this.client=new U(i)}return{...this.clientConfig,...e}}_convertChatOpenAIToolToCompletionsTool(e,t){return ig(e)?cg(e.metadata.customTool):Bo(e)?t?.strict!==void 0?{...e,function:{...e.function,strict:t.strict}}:e:ng(e,t)}bindTools(e,t){let n;return t?.strict!==void 0?n=t.strict:this.supportsStrictToolCalling!==void 0&&(n=this.supportsStrictToolCalling),this.withConfig({tools:e.map(s=>mu(s)?s:this._convertChatOpenAIToolToCompletionsTool(s,{strict:n})),...t})}async stream(e,t){return super.stream(e,this._combineCallOptions(t))}async invoke(e,t){return super.invoke(e,this._combineCallOptions(t))}_combineLLMOutput(...e){return e.reduce((t,n)=>(n&&n.tokenUsage&&(t.tokenUsage.completionTokens+=n.tokenUsage.completionTokens??0,t.tokenUsage.promptTokens+=n.tokenUsage.promptTokens??0,t.tokenUsage.totalTokens+=n.tokenUsage.totalTokens??0),t),{tokenUsage:{completionTokens:0,promptTokens:0,totalTokens:0}})}async getNumTokensFromMessages(e){let t=0,n=0,s=0;this.model==="gpt-3.5-turbo-0301"?(n=4,s=-1):(n=3,s=1);let i=await Promise.all(e.map(async o=>{let a=await this.getNumTokens(o.content),u=await this.getNumTokens(Np(o)),c=o.name!==void 0?s+await this.getNumTokens(o.name):0,l=a+n+u+c,p=o;if(p._getType()==="function"&&(l-=2),p.additional_kwargs?.function_call&&(l+=3),p?.additional_kwargs.function_call?.name&&(l+=await this.getNumTokens(p.additional_kwargs.function_call?.name)),p.additional_kwargs.function_call?.arguments)try{l+=await this.getNumTokens(JSON.stringify(JSON.parse(p.additional_kwargs.function_call?.arguments)))}catch(h){console.error("Error parsing function arguments",h,JSON.stringify(p.additional_kwargs.function_call)),l+=await this.getNumTokens(p.additional_kwargs.function_call?.arguments)}return t+=l,l}));return t+=3,{totalCount:t,countPerMessage:i}}async _getNumTokensFromGenerations(e){return(await Promise.all(e.map(async n=>n.message.additional_kwargs?.function_call?(await this.getNumTokensFromMessages([n.message])).countPerMessage[0]:await this.getNumTokens(n.message.content)))).reduce((n,s)=>n+s,0)}async _getEstimatedTokenCountFromPrompt(e,t,n){let s=(await this.getNumTokensFromMessages(e)).totalCount;if(t&&n!=="auto"){let i=tg(t);s+=await this.getNumTokens(i),s+=9}return t&&e.find(i=>i._getType()==="system")&&(s-=4),n==="none"?s+=1:typeof n=="object"&&(s+=await this.getNumTokens(n.name)+4),s}_getStructuredOutputMethod(e){let t={...e};if(!this.model.startsWith("gpt-3")&&!this.model.startsWith("gpt-4-")&&this.model!=="gpt-4"){if(t?.method===void 0)return"jsonSchema"}else t.method==="jsonSchema"&&console.warn(`[WARNING]: JSON Schema is not supported for model "${this.model}". Falling back to tool calling.`);return t.method}withStructuredOutput(e,t){let n,s,i,o;Iw(e)?(n=e.schema,s=e.name,i=e.method,o=e.includeRaw):(n=e,s=t?.name,i=t?.method,o=t?.includeRaw);let a,u;if(t?.strict!==void 0&&i==="jsonMode")throw new Error("Argument `strict` is only supported for `method` = 'function_calling'");if(i=this._getStructuredOutputMethod({...t,method:i}),i==="jsonMode"){Ze(n)?u=sn.fromZodSchema(n):u=new Qn;let h=Ae(n);a=this.withConfig({response_format:{type:"json_object"},ls_structured_output_format:{kwargs:{method:"json_mode"},schema:{title:s??"extract",...h}}})}else if(i==="jsonSchema"){let h={name:s??"extract",description:$t(n),schema:n,strict:t?.strict},f=Ae(h.schema);if(a=this.withConfig({response_format:{type:"json_schema",json_schema:h},ls_structured_output_format:{kwargs:{method:"json_schema"},schema:{title:h.name,description:h.description,...f}}}),Ze(n)){let g=sn.fromZodSchema(n);u=Ft.from(b=>"parsed"in b.additional_kwargs?b.additional_kwargs.parsed:g)}else u=new Qn}else{let h=s??"extract";if(Ze(n)){let f=Ae(n);a=this.withConfig({tools:[{type:"function",function:{name:h,description:f.description,parameters:f}}],tool_choice:{type:"function",function:{name:h}},ls_structured_output_format:{kwargs:{method:"function_calling"},schema:{title:h,...f}},...t?.strict!==void 0?{strict:t.strict}:{}}),u=new uo({returnSingle:!0,keyName:h,zodSchema:n})}else{let f;typeof n.name=="string"&&typeof n.parameters=="object"&&n.parameters!=null?(f=n,h=n.name):(h=n.title??h,f={name:h,description:n.description??"",parameters:n});let g=Ae(n);a=this.withConfig({tools:[{type:"function",function:f}],tool_choice:{type:"function",function:{name:h}},ls_structured_output_format:{kwargs:{method:"function_calling"},schema:{title:h,...g}},...t?.strict!==void 0?{strict:t.strict}:{}}),u=new uo({returnSingle:!0,keyName:h})}}if(!o)return a.pipe(u);let c=Ge.assign({parsed:(h,f)=>u.invoke(h.raw,f)}),l=Ge.assign({parsed:()=>null}),p=c.withFallbacks({fallbacks:[l]});return Qe.from([{raw:a},p])}},ho=class extends fo{invocationParams(e){let t;e?.strict!==void 0?t=e.strict:this.supportsStrictToolCalling!==void 0&&(t=this.supportsStrictToolCalling);let n={model:this.model,temperature:this.temperature,top_p:this.topP,user:this.user,stream:this.streaming,previous_response_id:e?.previous_response_id,truncation:e?.truncation,include:e?.include,tools:e?.tools?.length?this._reduceChatOpenAITools(e.tools,{stream:this.streaming,strict:t}):void 0,tool_choice:sg(e?.tool_choice)?e?.tool_choice:(()=>{let i=Sp(e?.tool_choice);if(typeof i=="object"&&"type"in i){if(i.type==="function")return{type:"function",name:i.function.name};if(i.type==="allowed_tools")return{type:"allowed_tools",mode:i.allowed_tools.mode,tools:i.allowed_tools.tools};if(i.type==="custom")return{type:"custom",name:i.custom.name}}})(),text:(()=>{if(e?.text)return e.text;let i=this._getResponseFormat(e?.response_format);return i?.type==="json_schema"?i.json_schema.schema!=null?{format:{type:"json_schema",schema:i.json_schema.schema,description:i.json_schema.description,name:i.json_schema.name,strict:i.json_schema.strict},verbosity:e?.verbosity}:void 0:{format:i,verbosity:e?.verbosity}})(),parallel_tool_calls:e?.parallel_tool_calls,max_output_tokens:this.maxTokens===-1?void 0:this.maxTokens,prompt_cache_key:e?.promptCacheKey??this.promptCacheKey,...this.zdrEnabled?{store:!1}:{},...this.modelKwargs},s=this._getReasoningParams(e);return s!==void 0&&(n.reasoning=s),n}async _generate(e,t){let n=this.invocationParams(t);if(n.stream){let s=this._streamResponseChunks(e,t),i;for await(let o of s)o.message.response_metadata={...o.generationInfo,...o.message.response_metadata},i=i?.concat(o)??o;return{generations:i?[i]:[],llmOutput:{estimatedTokenUsage:i?.message?.usage_metadata}}}else{let s=this._convertMessagesToResponsesParams(e),i=await this.completionWithRetry({input:s,...n,stream:!1},{signal:t?.signal,...t?.options});return{generations:[{text:i.output_text,message:this._convertResponsesMessageToBaseMessage(i)}],llmOutput:{id:i.id,estimatedTokenUsage:i.usage?{promptTokens:i.usage.input_tokens,completionTokens:i.usage.output_tokens,totalTokens:i.usage.total_tokens}:void 0}}}}async*_streamResponseChunks(e,t,n){let s=await this.completionWithRetry({...this.invocationParams(t),input:this._convertMessagesToResponsesParams(e),stream:!0},t);for await(let i of s){let o=this._convertResponsesDeltaToBaseMessageChunk(i);o!=null&&(yield o,await n?.handleLLMNewToken(o.text||"",{prompt:t.promptIndex??0,completion:0},void 0,void 0,void 0,{chunk:o}))}}async completionWithRetry(e,t){return this.caller.call(async()=>{let n=this._getClientOptions(t);try{return e.text?.format?.type==="json_schema"&&!e.stream?await this.client.responses.parse(e,n):await this.client.responses.create(e,n)}catch(s){throw Jr(s)}})}_convertResponsesMessageToBaseMessage(e){if(e.error){let u=new Error(e.error.message);throw u.name=e.error.code,u}let t,n=[],s=[],i=[],o={model:e.model,created_at:e.created_at,id:e.id,incomplete_details:e.incomplete_details,metadata:e.metadata,object:e.object,status:e.status,user:e.user,service_tier:e.service_tier,model_name:e.model},a={};for(let u of e.output)if(u.type==="message")t=u.id,n.push(...u.content.flatMap(c=>c.type==="output_text"?("parsed"in c&&c.parsed!=null&&(a.parsed=c.parsed),{type:"text",text:c.text,annotations:c.annotations}):c.type==="refusal"?(a.refusal=c.refusal,[]):c));else if(u.type==="function_call"){let c={function:{name:u.name,arguments:u.arguments},id:u.call_id};try{s.push(lu(c,{returnId:!0}))}catch(l){let p;typeof l=="object"&&l!=null&&"message"in l&&typeof l.message=="string"&&(p=l.message),i.push(pu(c,p))}a[gu]??={},u.id&&(a[gu][u.call_id]=u.id)}else if(u.type==="reasoning")a.reasoning=u;else if(u.type==="custom_tool_call"){let c=og(u);c?s.push(c):i.push(pu(u,"Malformed custom tool call"))}else a.tool_outputs??=[],a.tool_outputs.push(u);return new ce({id:t,content:n,tool_calls:s,invalid_tool_calls:i,usage_metadata:Tp(e.usage),additional_kwargs:a,response_metadata:o})}_convertResponsesDeltaToBaseMessageChunk(e){let t=[],n={},s,i=[],o={},a={},u;if(e.type==="response.output_text.delta")t.push({type:"text",text:e.delta,index:e.content_index});else if(e.type==="response.output_text.annotation.added")t.push({type:"text",text:"",annotations:[e.annotation],index:e.content_index});else if(e.type==="response.output_item.added"&&e.item.type==="message")u=e.item.id;else if(e.type==="response.output_item.added"&&e.item.type==="function_call")i.push({type:"tool_call_chunk",name:e.item.name,args:e.item.arguments,id:e.item.call_id,index:e.output_index}),a[gu]={[e.item.call_id]:e.item.id};else if(e.type==="response.output_item.done"&&["web_search_call","file_search_call","computer_call","code_interpreter_call","mcp_call","mcp_list_tools","mcp_approval_request","image_generation_call","custom_tool_call"].includes(e.item.type))a.tool_outputs=[e.item];else if(e.type==="response.created")o.id=e.response.id,o.model_name=e.response.model,o.model=e.response.model;else if(e.type==="response.completed"){let c=this._convertResponsesMessageToBaseMessage(e.response);s=Tp(e.response.usage),e.response.text?.format?.type==="json_schema"&&(a.parsed??=JSON.parse(c.text));for(let[l,p]of Object.entries(e.response))l!=="id"&&(o[l]=p)}else if(e.type==="response.function_call_arguments.delta"||e.type==="response.custom_tool_call_input.delta")i.push({type:"tool_call_chunk",args:e.delta,index:e.output_index});else if(e.type==="response.web_search_call.completed"||e.type==="response.file_search_call.completed")n={tool_outputs:{id:e.item_id,type:e.type.replace("response.","").replace(".completed",""),status:"completed"}};else if(e.type==="response.refusal.done")a.refusal=e.refusal;else if(e.type==="response.output_item.added"&&"item"in e&&e.item.type==="reasoning"){let c=e.item.summary?e.item.summary.map((l,p)=>({...l,index:p})):void 0;a.reasoning={id:e.item.id,type:e.item.type,...c?{summary:c}:{}}}else if(e.type==="response.reasoning_summary_part.added")a.reasoning={type:"reasoning",summary:[{...e.part,index:e.summary_index}]};else if(e.type==="response.reasoning_summary_text.delta")a.reasoning={type:"reasoning",summary:[{text:e.delta,type:"summary_text",index:e.summary_index}]};else return e.type==="response.image_generation_call.partial_image",null;return new ht({text:t.map(c=>c.text).join(""),message:new Mt({id:u,content:t,tool_call_chunks:i,usage_metadata:s,additional_kwargs:a,response_metadata:o}),generationInfo:n})}_convertMessagesToResponsesParams(e){return e.flatMap(t=>{let n=t.additional_kwargs,s=Np(t);if(s==="system"&&yu(this.model)&&(s="developer"),s==="function")throw new Error("Function messages are not supported in Responses API");if(s==="tool"){let i=t;return n?.type==="computer_call_output"?{type:"computer_call_output",output:(()=>{if(typeof i.content=="string")return{type:"computer_screenshot",image_url:i.content};if(Array.isArray(i.content)){let a=i.content.find(c=>c.type==="computer_screenshot");if(a)return a;let u=i.content.find(c=>c.type==="image_url");if(u)return{type:"computer_screenshot",image_url:typeof u.image_url=="string"?u.image_url:u.image_url.url}}throw new Error("Invalid computer call output")})(),call_id:i.tool_call_id}:i.metadata?.customTool?{type:"custom_tool_call_output",call_id:i.tool_call_id,output:i.content}:{type:"function_call_output",call_id:i.tool_call_id,id:i.id?.startsWith("fc_")?i.id:void 0,output:typeof i.content!="string"?JSON.stringify(i.content):i.content}}if(s==="assistant"){if(!this.zdrEnabled&&t.response_metadata.output!=null&&Array.isArray(t.response_metadata.output)&&t.response_metadata.output.length>0&&t.response_metadata.output.every(l=>"type"in l))return t.response_metadata.output;let i=[];if(n?.reasoning&&!this.zdrEnabled){let l=this._convertReasoningSummary(n.reasoning);i.push(l)}let{content:o}=t;n?.refusal&&(typeof o=="string"&&(o=[{type:"output_text",text:o,annotations:[]}]),o=[...o,{type:"refusal",refusal:n.refusal}]),(typeof o=="string"||o.length>0)&&i.push({type:"message",role:"assistant",...t.id&&!this.zdrEnabled&&t.id.startsWith("msg_")?{id:t.id}:{},content:typeof o=="string"?o:o.flatMap(l=>l.type==="text"?{type:"output_text",text:l.text,annotations:l.annotations??[]}:l.type==="output_text"||l.type==="refusal"?l:[])});let a=n?.[gu];jt(t)&&t.tool_calls?.length?i.push(...t.tool_calls.map(l=>ag(l)?{type:"custom_tool_call",id:l.call_id,call_id:l.id??"",input:l.args.input,name:l.name}:{type:"function_call",name:l.name,arguments:JSON.stringify(l.args),call_id:l.id,...this.zdrEnabled?{id:a?.[l.id]}:{}})):n?.tool_calls&&i.push(...n.tool_calls.map(l=>({type:"function_call",name:l.function.name,call_id:l.id,arguments:l.function.arguments,...this.zdrEnabled?{id:a?.[l.id]}:{}})));let u=t.response_metadata.output?.length?t.response_metadata.output:n.tool_outputs,c=["computer_call","mcp_call","code_interpreter_call","image_generation_call"];if(u!=null){let p=u?.filter(h=>c.includes(h.type));p.length>0&&i.push(...p)}return i}if(s==="user"||s==="system"||s==="developer"){if(typeof t.content=="string")return{type:"message",role:s,content:t.content};let i=[],o=t.content.flatMap(a=>(a.type==="mcp_approval_response"&&i.push({type:"mcp_approval_response",approval_request_id:a.approval_request_id,approve:a.approve}),Iu(a)?Cu(a,pg):a.type==="text"?{type:"input_text",text:a.text}:a.type==="image_url"?{type:"input_image",image_url:typeof a.image_url=="string"?a.image_url:a.image_url.url,detail:typeof a.image_url=="string"?"auto":a.image_url.detail}:a.type==="input_text"||a.type==="input_image"||a.type==="input_file"?a:[]));return o.length>0&&i.push({type:"message",role:s,content:o}),i}return console.warn(`Unsupported role found when converting to OpenAI Responses API: ${s}`),[]})}_convertReasoningSummary(e){let t=(e.summary.length>1?e.summary.reduce((n,s)=>{let i=n.at(-1);return i.index===s.index?i.text+=s.text:n.push(s),n},[{...e.summary[0]}]):e.summary).map(n=>Object.fromEntries(Object.entries(n).filter(([s])=>s!=="index")));return{...e,summary:t}}_reduceChatOpenAITools(e,t){let n=[];for(let s of e)mu(s)?(s.type==="image_generation"&&t?.stream&&(s.partial_images=1),n.push(s)):Bo(s)?n.push({type:"function",name:s.function.name,parameters:s.function.parameters,description:s.function.description,strict:t?.strict??null}):Cp(s)&&n.push(ug(s));return n}},mo=class extends fo{invocationParams(e,t){let n;e?.strict!==void 0?n=e.strict:this.supportsStrictToolCalling!==void 0&&(n=this.supportsStrictToolCalling);let s={};e?.stream_options!==void 0?s={stream_options:e.stream_options}:this.streamUsage&&(this.streaming||t?.streaming)&&(s={stream_options:{include_usage:!0}});let i={model:this.model,temperature:this.temperature,top_p:this.topP,frequency_penalty:this.frequencyPenalty,presence_penalty:this.presencePenalty,logprobs:this.logprobs,top_logprobs:this.topLogprobs,n:this.n,logit_bias:this.logitBias,stop:e?.stop??this.stopSequences,user:this.user,stream:this.streaming,functions:e?.functions,function_call:e?.function_call,tools:e?.tools?.length?e.tools.map(a=>this._convertChatOpenAIToolToCompletionsTool(a,{strict:n})):void 0,tool_choice:Sp(e?.tool_choice),response_format:this._getResponseFormat(e?.response_format),seed:e?.seed,...s,parallel_tool_calls:e?.parallel_tool_calls,...this.audio||e?.audio?{audio:this.audio||e?.audio}:{},...this.modalities||e?.modalities?{modalities:this.modalities||e?.modalities}:{},...this.modelKwargs,prompt_cache_key:e?.promptCacheKey??this.promptCacheKey,verbosity:e?.verbosity??this.verbosity};e?.prediction!==void 0&&(i.prediction=e.prediction),this.service_tier!==void 0&&(i.service_tier=this.service_tier),e?.service_tier!==void 0&&(i.service_tier=e.service_tier);let o=this._getReasoningParams(e);return o!==void 0&&o.effort!==void 0&&(i.reasoning_effort=o.effort),yu(i.model)?i.max_completion_tokens=this.maxTokens===-1?void 0:this.maxTokens:i.max_tokens=this.maxTokens===-1?void 0:this.maxTokens,i}async _generate(e,t,n){let s={},i=this.invocationParams(t),o=Rp(e,this.model);if(i.stream){let a=this._streamResponseChunks(e,t,n),u={};for await(let g of a){g.message.response_metadata={...g.generationInfo,...g.message.response_metadata};let b=g.generationInfo?.completion??0;u[b]===void 0?u[b]=g:u[b]=u[b].concat(g)}let c=Object.entries(u).sort(([g],[b])=>parseInt(g,10)-parseInt(b,10)).map(([g,b])=>b),{functions:l,function_call:p}=this.invocationParams(t),h=await this._getEstimatedTokenCountFromPrompt(e,l,p),f=await this._getNumTokensFromGenerations(c);return s.input_tokens=h,s.output_tokens=f,s.total_tokens=h+f,{generations:c,llmOutput:{estimatedTokenUsage:{promptTokens:s.input_tokens,completionTokens:s.output_tokens,totalTokens:s.total_tokens}}}}else{let a=await this.completionWithRetry({...i,stream:!1,messages:o},{signal:t?.signal,...t?.options}),{completion_tokens:u,prompt_tokens:c,total_tokens:l,prompt_tokens_details:p,completion_tokens_details:h}=a?.usage??{};u&&(s.output_tokens=(s.output_tokens??0)+u),c&&(s.input_tokens=(s.input_tokens??0)+c),l&&(s.total_tokens=(s.total_tokens??0)+l),(p?.audio_tokens!==null||p?.cached_tokens!==null)&&(s.input_token_details={...p?.audio_tokens!==null&&{audio:p?.audio_tokens},...p?.cached_tokens!==null&&{cache_read:p?.cached_tokens}}),(h?.audio_tokens!==null||h?.reasoning_tokens!==null)&&(s.output_token_details={...h?.audio_tokens!==null&&{audio:h?.audio_tokens},...h?.reasoning_tokens!==null&&{reasoning:h?.reasoning_tokens}});let f=[];for(let g of a?.choices??[]){let _={text:g.message?.content??"",message:this._convertCompletionsMessageToBaseMessage(g.message??{role:"assistant"},a)};_.generationInfo={...g.finish_reason?{finish_reason:g.finish_reason}:{},...g.logprobs?{logprobs:g.logprobs}:{}},jt(_.message)&&(_.message.usage_metadata=s),_.message=new ce(Object.fromEntries(Object.entries(_.message).filter(([P])=>!P.startsWith("lc_")))),f.push(_)}return{generations:f,llmOutput:{tokenUsage:{promptTokens:s.input_tokens,completionTokens:s.output_tokens,totalTokens:s.total_tokens}}}}}async*_streamResponseChunks(e,t,n){let s=Rp(e,this.model),i={...this.invocationParams(t,{streaming:!0}),messages:s,stream:!0},o,a=await this.completionWithRetry(i,t),u;for await(let c of a){let l=c?.choices?.[0];if(c.usage&&(u=c.usage),!l)continue;let{delta:p}=l;if(!p)continue;let h=this._convertCompletionsDeltaToBaseMessageChunk(p,c,o);o=p.role??o;let f={prompt:t.promptIndex??0,completion:l.index??0};if(typeof h.content!="string"){console.log("[WARNING]: Received non-string content from OpenAI. This is currently not supported.");continue}let g={...f};l.finish_reason!=null&&(g.finish_reason=l.finish_reason,g.system_fingerprint=c.system_fingerprint,g.model_name=c.model,g.service_tier=c.service_tier),this.logprobs&&(g.logprobs=l.logprobs);let b=new ht({message:h,text:h.content,generationInfo:g});yield b,await n?.handleLLMNewToken(b.text??"",f,void 0,void 0,void 0,{chunk:b})}if(u){let c={...u.prompt_tokens_details?.audio_tokens!==null&&{audio:u.prompt_tokens_details?.audio_tokens},...u.prompt_tokens_details?.cached_tokens!==null&&{cache_read:u.prompt_tokens_details?.cached_tokens}},l={...u.completion_tokens_details?.audio_tokens!==null&&{audio:u.completion_tokens_details?.audio_tokens},...u.completion_tokens_details?.reasoning_tokens!==null&&{reasoning:u.completion_tokens_details?.reasoning_tokens}};yield new ht({message:new Mt({content:"",response_metadata:{usage:{...u}},usage_metadata:{input_tokens:u.prompt_tokens,output_tokens:u.completion_tokens,total_tokens:u.total_tokens,...Object.keys(c).length>0&&{input_token_details:c},...Object.keys(l).length>0&&{output_token_details:l}}}),text:""})}if(t.signal?.aborted)throw new Error("AbortError")}async completionWithRetry(e,t){let n=this._getClientOptions(t),s=e.response_format&&e.response_format.type==="json_schema";return this.caller.call(async()=>{try{return s&&!e.stream?await this.client.chat.completions.parse(e,n):await this.client.chat.completions.create(e,n)}catch(i){throw Jr(i)}})}_convertCompletionsMessageToBaseMessage(e,t){let n=e.tool_calls;switch(e.role){case"assistant":{let s=[],i=[];for(let c of n??[])try{s.push(lu(c,{returnId:!0}))}catch(l){i.push(pu(c,l.message))}let o={function_call:e.function_call,tool_calls:n};this.__includeRawResponse!==void 0&&(o.__raw_response=t);let a={model_name:t.model,...t.system_fingerprint?{usage:{...t.usage},system_fingerprint:t.system_fingerprint}:{}};e.audio&&(o.audio=e.audio);let u=lg(e.content||"",t.choices?.[0]?.message);return new ce({content:u,tool_calls:s,invalid_tool_calls:i,additional_kwargs:o,response_metadata:a,id:t.id})}default:return new Nu(e.content||"",e.role??"unknown")}}_convertCompletionsDeltaToBaseMessageChunk(e,t,n){let s=e.role??n,i=e.content??"",o;e.function_call?o={function_call:e.function_call}:e.tool_calls?o={tool_calls:e.tool_calls}:o={},this.__includeRawResponse&&(o.__raw_response=t),e.audio&&(o.audio={...e.audio,index:t.choices[0].index});let a={usage:{...t.usage}};if(s==="user")return new _f({content:i,response_metadata:a});if(s==="assistant"){let u=[];if(Array.isArray(e.tool_calls))for(let c of e.tool_calls)u.push({name:c.function?.name,args:c.function?.arguments,id:c.id,index:c.index,type:"tool_call_chunk"});return new Mt({content:i,tool_call_chunks:u,additional_kwargs:o,id:t.id,response_metadata:a})}else return s==="system"?new ju({content:i,response_metadata:a}):s==="developer"?new ju({content:i,response_metadata:a,additional_kwargs:{__openai_role__:"developer"}}):s==="function"?new yf({content:i,additional_kwargs:o,name:e.name,response_metadata:a}):s==="tool"?new gf({content:i,additional_kwargs:o,tool_call_id:e.tool_call_id,response_metadata:a}):new bf({content:i,role:s,response_metadata:a})}},bu=class r extends fo{get lc_serializable_keys(){return[...super.lc_serializable_keys,"useResponsesApi"]}constructor(e){super(e),Object.defineProperty(this,"fields",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"useResponsesApi",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"responses",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"completions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.useResponsesApi=e?.useResponsesApi??!1,this.responses=e?.responses??new ho(e),this.completions=e?.completions??new mo(e)}_useResponsesApi(e){let t=e?.tools?.some(mu),n=e?.previous_response_id!=null||e?.text!=null||e?.truncation!=null||e?.include!=null||e?.reasoning?.summary!=null||this.reasoning?.summary!=null,s=e?.tools?.some(Cp);return this.useResponsesApi||t||n||s}getLsParams(e){let t=this._combineCallOptions(e);return this._useResponsesApi(e)?this.responses.getLsParams(t):this.completions.getLsParams(t)}invocationParams(e){let t=this._combineCallOptions(e);return this._useResponsesApi(e)?this.responses.invocationParams(t):this.completions.invocationParams(t)}async _generate(e,t,n){return this._useResponsesApi(t)?this.responses._generate(e,t):this.completions._generate(e,t,n)}async*_streamResponseChunks(e,t,n){if(this._useResponsesApi(t)){yield*this.responses._streamResponseChunks(e,this._combineCallOptions(t),n);return}yield*this.completions._streamResponseChunks(e,this._combineCallOptions(t),n)}withConfig(e){let t=new r(this.fields);return t.defaultOptions={...this.defaultOptions,...e},t}};var Sw=r=>r();function fg(r){return typeof Headers<"u"&&r!==null&&typeof r=="object"&&Object.prototype.toString.call(r)==="[object Headers]"}function go(r){let e=Sw(()=>{if(fg(r))return r;if(Array.isArray(r))return new Headers(r);if(typeof r=="object"&&r!==null&&"values"in r&&fg(r.values))return r.values;if(typeof r=="object"&&r!==null){let t=Object.entries(r).filter(([,n])=>typeof n=="string").map(([n,s])=>[n,s]);return new Headers(t)}return new Headers});return Object.fromEntries(e.entries())}var Dp={openAIApiKey:"openai_api_key",openAIApiVersion:"openai_api_version",openAIBasePath:"openai_api_base",deploymentName:"deployment_name",azureOpenAIEndpoint:"azure_endpoint",azureOpenAIApiVersion:"openai_api_version",azureOpenAIBasePath:"openai_api_base",azureOpenAIApiDeploymentName:"deployment_name"},$p={azureOpenAIApiKey:"AZURE_OPENAI_API_KEY"},Lp=["azureOpenAIApiKey","azureOpenAIApiVersion","azureOpenAIBasePath","azureOpenAIEndpoint","azureOpenAIApiInstanceName","azureOpenAIApiDeploymentName","deploymentName","openAIApiKey","openAIApiVersion"];function Fp(r){if(this.azureOpenAIApiKey=r?.azureOpenAIApiKey??r?.openAIApiKey??r?.apiKey??te("AZURE_OPENAI_API_KEY"),this.azureOpenAIApiInstanceName=r?.azureOpenAIApiInstanceName??te("AZURE_OPENAI_API_INSTANCE_NAME"),this.azureOpenAIApiDeploymentName=r?.azureOpenAIApiDeploymentName??r?.deploymentName??te("AZURE_OPENAI_API_DEPLOYMENT_NAME"),this.azureOpenAIApiVersion=r?.azureOpenAIApiVersion??r?.openAIApiVersion??te("AZURE_OPENAI_API_VERSION"),this.azureOpenAIBasePath=r?.azureOpenAIBasePath??te("AZURE_OPENAI_BASE_PATH"),this.azureOpenAIEndpoint=r?.azureOpenAIEndpoint??te("AZURE_OPENAI_ENDPOINT"),this.azureADTokenProvider=r?.azureADTokenProvider,!this.azureOpenAIApiKey&&!this.apiKey&&!this.azureADTokenProvider)throw new Error("Azure OpenAI API key or Token Provider not found")}function hg(r){if(!this.client){let t={azureOpenAIApiDeploymentName:this.azureOpenAIApiDeploymentName,azureOpenAIApiInstanceName:this.azureOpenAIApiInstanceName,azureOpenAIApiKey:this.azureOpenAIApiKey,azureOpenAIBasePath:this.azureOpenAIBasePath,azureADTokenProvider:this.azureADTokenProvider,baseURL:this.clientConfig.baseURL,azureOpenAIEndpoint:this.azureOpenAIEndpoint},n=sr(t),s={...this.clientConfig,baseURL:n,timeout:this.timeout,maxRetries:0};this.azureADTokenProvider||(s.apiKey=t.azureOpenAIApiKey),s.baseURL||delete s.baseURL;let i=vf();(i==="node"||i==="deno")&&(i=`(${i}/${process.version}; ${process.platform}; ${process.arch})`);let o=go(s.defaultHeaders);s.defaultHeaders={...s.defaultHeaders,"User-Agent":o["User-Agent"]?`langchainjs-azure-openai/2.0.0 (${i})${o["User-Agent"]}`:`langchainjs-azure-openai/2.0.0 (${i})`},this.client=new qr({apiVersion:this.azureOpenAIApiVersion,azureADTokenProvider:this.azureADTokenProvider,deployment:this.azureOpenAIApiDeploymentName,...s})}let e={...this.clientConfig,...r};return this.azureOpenAIApiKey&&(e.headers={"api-key":this.azureOpenAIApiKey,...e.headers},e.query={"api-version":this.azureOpenAIApiVersion,...e.query}),e}function Up(r){let e=r;function t(n){return typeof n=="object"&&n!=null}if(t(e)&&t(e.kwargs)){if(delete e.kwargs.azure_openai_base_path,delete e.kwargs.azure_openai_api_deployment_name,delete e.kwargs.azure_openai_api_key,delete e.kwargs.azure_openai_api_version,delete e.kwargs.azure_open_ai_base_path,!e.kwargs.azure_endpoint&&this.azureOpenAIEndpoint&&(e.kwargs.azure_endpoint=this.azureOpenAIEndpoint),!e.kwargs.azure_endpoint&&this.azureOpenAIBasePath){let n=this.azureOpenAIBasePath.split("/openai/deployments/");if(n.length===2&&n[0].startsWith("http")){let[s]=n;e.kwargs.azure_endpoint=s}}if(!e.kwargs.azure_endpoint&&this.azureOpenAIApiInstanceName&&(e.kwargs.azure_endpoint=`https://${this.azureOpenAIApiInstanceName}.openai.azure.com/`),!e.kwargs.deployment_name&&this.azureOpenAIApiDeploymentName&&(e.kwargs.deployment_name=this.azureOpenAIApiDeploymentName),!e.kwargs.deployment_name&&this.azureOpenAIBasePath){let n=this.azureOpenAIBasePath.split("/openai/deployments/");if(n.length===2){let[,s]=n;e.kwargs.deployment_name=s}}e.kwargs.azure_endpoint&&e.kwargs.deployment_name&&e.kwargs.openai_api_base&&delete e.kwargs.openai_api_base,e.kwargs.azure_openai_api_instance_name&&e.kwargs.azure_endpoint&&delete e.kwargs.azure_openai_api_instance_name}return e}var jp=class extends ho{_llmType(){return"azure_openai"}get lc_aliases(){return{...super.lc_aliases,...Dp}}get lc_secrets(){return{...super.lc_secrets,...$p}}get lc_serializable_keys(){return[...super.lc_serializable_keys,...Lp]}getLsParams(e){let t=super.getLsParams(e);return t.ls_provider="azure",t}constructor(e){super(e),Object.defineProperty(this,"azureOpenAIApiVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureADTokenProvider",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiInstanceName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiDeploymentName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIBasePath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIEndpoint",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Fp.call(this,e)}_getClientOptions(e){return hg.call(this,e)}toJSON(){return Up.call(this,super.toJSON())}},Mp=class extends mo{_llmType(){return"azure_openai"}get lc_aliases(){return{...super.lc_aliases,...Dp}}get lc_secrets(){return{...super.lc_secrets,...$p}}get lc_serializable_keys(){return[...super.lc_serializable_keys,...Lp]}getLsParams(e){let t=super.getLsParams(e);return t.ls_provider="azure",t}constructor(e){super(e),Object.defineProperty(this,"azureOpenAIApiVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureADTokenProvider",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiInstanceName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiDeploymentName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIBasePath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIEndpoint",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Fp.call(this,e)}_getClientOptions(e){return hg.call(this,e)}toJSON(){return Up.call(this,super.toJSON())}},_u=class extends bu{_llmType(){return"azure_openai"}get lc_aliases(){return{...super.lc_aliases,...Dp}}get lc_secrets(){return{...super.lc_secrets,...$p}}get lc_serializable_keys(){return[...super.lc_serializable_keys,...Lp]}getLsParams(e){let t=super.getLsParams(e);return t.ls_provider="azure",t}constructor(e){super({...e,completions:new Mp(e),responses:new jp(e)}),Object.defineProperty(this,"azureOpenAIApiVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureADTokenProvider",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiInstanceName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiDeploymentName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIBasePath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIEndpoint",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Fp.call(this,e)}_getStructuredOutputMethod(e){let t={...e};return this.model.startsWith("gpt-4o")&&t?.method===void 0?"functionCalling":super._getStructuredOutputMethod(t)}toJSON(){return Up.call(this,super.toJSON())}};var wu=class extends Ir{constructor(e){let t={maxConcurrency:2,...e};super(t),Object.defineProperty(this,"model",{enumerable:!0,configurable:!0,writable:!0,value:"text-embedding-ada-002"}),Object.defineProperty(this,"modelName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"batchSize",{enumerable:!0,configurable:!0,writable:!0,value:512}),Object.defineProperty(this,"stripNewLines",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"dimensions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"organization",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"encodingFormat",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"client",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"clientConfig",{enumerable:!0,configurable:!0,writable:!0,value:void 0});let n=t?.apiKey??t?.openAIApiKey??te("OPENAI_API_KEY");this.organization=t?.configuration?.organization??te("OPENAI_ORGANIZATION"),this.model=t?.model??t?.modelName??this.model,this.modelName=this.model,this.batchSize=t?.batchSize??this.batchSize,this.stripNewLines=t?.stripNewLines??this.stripNewLines,this.timeout=t?.timeout,this.dimensions=t?.dimensions,this.encodingFormat=t?.encodingFormat,this.clientConfig={apiKey:n,organization:this.organization,dangerouslyAllowBrowser:!0,...e?.configuration}}async embedDocuments(e){let t=Xo(this.stripNewLines?e.map(o=>o.replace(/\n/g," ")):e,this.batchSize),n=t.map(o=>{let a={model:this.model,input:o};return this.dimensions&&(a.dimensions=this.dimensions),this.encodingFormat&&(a.encoding_format=this.encodingFormat),this.embeddingWithRetry(a)}),s=await Promise.all(n),i=[];for(let o=0;o<s.length;o+=1){let a=t[o],{data:u}=s[o];for(let c=0;c<a.length;c+=1)i.push(u[c].embedding)}return i}async embedQuery(e){let t={model:this.model,input:this.stripNewLines?e.replace(/\n/g," "):e};this.dimensions&&(t.dimensions=this.dimensions),this.encodingFormat&&(t.encoding_format=this.encodingFormat);let{data:n}=await this.embeddingWithRetry(t);return n[0].embedding}async embeddingWithRetry(e){if(!this.client){let n={baseURL:this.clientConfig.baseURL},s=sr(n),i={...this.clientConfig,baseURL:s,timeout:this.timeout,maxRetries:0};i.baseURL||delete i.baseURL,this.client=new U(i)}let t={};return this.caller.call(async()=>{try{return await this.client.embeddings.create(e,t)}catch(n){throw Jr(n)}})}};var xu=class extends wu{constructor(e){super(e),Object.defineProperty(this,"azureOpenAIApiVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureADTokenProvider",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiInstanceName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiDeploymentName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIBasePath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.batchSize=e?.batchSize??1,this.azureOpenAIApiKey=e?.azureOpenAIApiKey??e?.apiKey??te("AZURE_OPENAI_API_KEY"),this.azureOpenAIApiVersion=e?.azureOpenAIApiVersion??e?.openAIApiVersion??te("AZURE_OPENAI_API_VERSION"),this.azureOpenAIBasePath=e?.azureOpenAIBasePath??te("AZURE_OPENAI_BASE_PATH"),this.azureOpenAIApiInstanceName=e?.azureOpenAIApiInstanceName??te("AZURE_OPENAI_API_INSTANCE_NAME"),this.azureOpenAIApiDeploymentName=(e?.azureOpenAIApiEmbeddingsDeploymentName||e?.azureOpenAIApiDeploymentName)??(te("AZURE_OPENAI_API_EMBEDDINGS_DEPLOYMENT_NAME")||te("AZURE_OPENAI_API_DEPLOYMENT_NAME")),this.azureADTokenProvider=e?.azureADTokenProvider}async embeddingWithRetry(e){if(!this.client){let n={azureOpenAIApiDeploymentName:this.azureOpenAIApiDeploymentName,azureOpenAIApiInstanceName:this.azureOpenAIApiInstanceName,azureOpenAIApiKey:this.azureOpenAIApiKey,azureOpenAIBasePath:this.azureOpenAIBasePath,azureADTokenProvider:this.azureADTokenProvider,baseURL:this.clientConfig.baseURL},s=sr(n),i={...this.clientConfig,baseURL:s,timeout:this.timeout,maxRetries:0};this.azureADTokenProvider||(i.apiKey=n.azureOpenAIApiKey),i.baseURL||delete i.baseURL;let o=go(i.defaultHeaders);i.defaultHeaders={...i.defaultHeaders,"User-Agent":o["User-Agent"]?`${o["User-Agent"]}: langchainjs-azure-openai-v2`:"langchainjs-azure-openai-v2"},this.client=new qr({apiVersion:this.azureOpenAIApiVersion,azureADTokenProvider:this.azureADTokenProvider,deployment:this.azureOpenAIApiDeploymentName,...i})}let t={};return this.azureOpenAIApiKey&&(t.headers={"api-key":this.azureOpenAIApiKey,...t.headers},t.query={"api-version":this.azureOpenAIApiVersion,...t.query}),this.caller.call(async()=>{try{return await this.client.embeddings.create(e,t)}catch(n){throw Jr(n)}})}};var zp=class extends es{static lc_name(){return"DallEAPIWrapper"}constructor(e){e?.responseFormat!==void 0&&["url","b64_json"].includes(e.responseFormat)&&(e.dallEResponseFormat=e.responseFormat,e.responseFormat="content"),super(e),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"dalle_api_wrapper"}),Object.defineProperty(this,"description",{enumerable:!0,configurable:!0,writable:!0,value:"A wrapper around OpenAI DALL-E API. Useful for when you need to generate images from a text description. Input should be an image description."}),Object.defineProperty(this,"client",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"model",{enumerable:!0,configurable:!0,writable:!0,value:"dall-e-3"}),Object.defineProperty(this,"style",{enumerable:!0,configurable:!0,writable:!0,value:"vivid"}),Object.defineProperty(this,"quality",{enumerable:!0,configurable:!0,writable:!0,value:"standard"}),Object.defineProperty(this,"n",{enumerable:!0,configurable:!0,writable:!0,value:1}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:"1024x1024"}),Object.defineProperty(this,"dallEResponseFormat",{enumerable:!0,configurable:!0,writable:!0,value:"url"}),Object.defineProperty(this,"user",{enumerable:!0,configurable:!0,writable:!0,value:void 0});let t=e?.apiKey??e?.openAIApiKey??te("OPENAI_API_KEY"),n=e?.organization??te("OPENAI_ORGANIZATION"),s={apiKey:t,organization:n,dangerouslyAllowBrowser:!0,baseURL:e?.baseUrl};this.client=new U(s),this.model=e?.model??e?.modelName??this.model,this.style=e?.style??this.style,this.quality=e?.quality??this.quality,this.n=e?.n??this.n,this.size=e?.size??this.size,this.dallEResponseFormat=e?.dallEResponseFormat??this.dallEResponseFormat,this.user=e?.user}processMultipleGeneratedUrls(e){return this.dallEResponseFormat==="url"?e.flatMap(t=>t.data?.flatMap(s=>s.url?{type:"image_url",image_url:s.url}:[]).filter(s=>s!==void 0&&s.type==="image_url"&&typeof s.image_url=="string"&&s.image_url!==void 0)??[]):e.flatMap(t=>t.data?.flatMap(s=>s.b64_json?{type:"image_url",image_url:{url:s.b64_json}}:[]).filter(s=>s!==void 0&&s.type==="image_url"&&typeof s.image_url=="object"&&"url"in s.image_url&&typeof s.image_url.url=="string"&&s.image_url.url!==void 0)??[])}async _call(e){let t={model:this.model,prompt:e,n:1,size:this.size,response_format:this.dallEResponseFormat,style:this.style,quality:this.quality,user:this.user};if(this.n>1){let i=await Promise.all(Array.from({length:this.n}).map(()=>this.client.images.generate(t)));return this.processMultipleGeneratedUrls(i)}let n=await this.client.images.generate(t),s="";return this.dallEResponseFormat==="url"?[s]=n.data?.map(i=>i.url).filter(i=>i!=="undefined")??[]:[s]=n.data?.map(i=>i.b64_json).filter(i=>i!=="undefined")??[],s}};Object.defineProperty(zp,"toolName",{enumerable:!0,configurable:!0,writable:!0,value:"dalle_api_wrapper"});var Hp={"gpt-4.1":{deploymentName:"gpt-4.1",apiVersion:"2024-10-21",pathSegment:"models/gpt-4.1/openai/deployments/gpt-4.1/chat/completions"},"gpt-4.1-mini":{deploymentName:"gpt-4.1-mini",apiVersion:"2024-10-21",pathSegment:"models/gpt-4.1-mini/openai/deployments/gpt-4.1-mini/chat/completions"},"text-embedding-ada-002":{deploymentName:"text-embedding-ada-002",apiVersion:"2024-10-21",pathSegment:"models/text-embedding-ada-002/openai/deployments/text-embedding-ada-002/embeddings"}},yg={default:"gpt-4.1",fast:"gpt-4.1-mini"},_g={default:"text-embedding-ada-002"},wg=(r,e)=>{let t=Hp[e];return`${r}/${t.pathSegment}?api-version=${t.apiVersion}`};function xg(){let r=vu.getDefault().helperServices;if(!r?.aiUtilityServices?.url)throw new Error("AI Utility Service URL is not defined in the portal's helper services.");return r.aiUtilityServices.url}function Tw(r="default"){return wg(xg(),yg[r])}function vg(r="default"){return wg(xg(),_g[r])}var Rw=async r=>{let e=await Nw(),t=vg("default"),n=vu.getDefault(),s=(await Wp.getCredential(`${n.url}/sharing`)).token,i={type:"generateEmbeddings",layersAndFieldsRegistry:r,auth:{apiUrl:t,token:s}};return e.postMessage(i),await new Promise((o,a)=>{let u=l=>{l.data==="completed"&&(e.removeEventListener("message",u),o())},c=l=>{e.removeEventListener("message",u),a(l instanceof Error?l:new Error("Embeddings worker error"))};e.addEventListener("message",u),e.addEventListener("error",c,{once:!0})}),e},Nw=async()=>{let r=(await import("./CSFLVW7O.js")).default;return new r},dg=(r,e)=>e,jw=lt.Root({userInput:lt(),messages:lt({reducer:jr,default:()=>[]}),pendingIntents:lt({default:()=>[],reducer:dg}),currentIntent:lt({default:()=>"none",reducer:dg})}),xr=async(r,e)=>{await Ul("trace_message",r,e)},zL=async(r,e)=>{await Ul("graph_ux_suggestion",r,e)},Mw=r=>{r.currentIntent="none",r.pendingIntents=[]},Dw=async(r,e)=>{if(r.userInput){let n=new ot(r.userInput.trim());r.messages=[...r.messages,n],Mw(r)}let t=e?.configurable?.services.agentRegistry.list().map(n=>n.agent.id)??[];return await xr({text:`Available agents: ${[...t].join(", ")}`},e),await xr({text:"Analyzing user input"},e),r},$w=async(r,e)=>(await xr({text:"Exiting..."},e),r),Lw=r=>{if(r.pendingIntents.length===0)return{...r,currentIntent:"none"};let[e,...t]=r.pendingIntents;return{...r,currentIntent:e,pendingIntents:t}},mg=4e3,Fw=async(r,e)=>{let t=e?.configurable,{agentRegistry:n}=t.services,s=n?.get(r.currentIntent);if(!s)return console.warn(`No agent found for intent: ${r.currentIntent}`),r;await xr({text:`Executing registered agent: ${s.agent.name}`},e);let i={...e??{},configurable:{...t??{},agentId:s.agent.id,context:s.getContext?await s.getContext():void 0}},o=await s.agent.createGraph().compile().invoke({messages:[...r.messages]},i);await xr({text:`Finished executing registered agent: ${s.agent.name}`},e);let a=typeof o?.outputMessage=="string"?o.outputMessage.trim():"";if(!a)return r;let u=a.length>mg?`${a.slice(0,mg-14)}
129
+ [truncated]`:a;return{...r,messages:[...r.messages,new ce(u)]}},Uw=(r,e,t)=>{let n=r[e];return n?typeof n=="function"?n():Promise.resolve(n):new Promise((s,i)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(i.bind(null,new Error("Unknown variable dynamic import: "+e+(e.split("/").length!==t?". Note that variables only represent file names one level deep.":""))))})},Vp=async r=>(await Uw(Object.assign({"./field_descriptions_prompt.md":()=>import("./EFU7HGPY.js"),"./intent_prompt.md":()=>import("./IZ4NSOIH.js"),"./layer_descriptions_prompt.md":()=>import("./EU7GHH2Y.js")}),`./${r}.md`,2)).default,zw=(r,e=3)=>r.filter(t=>t instanceof ot).slice(-e),Bw=r=>{let e=-1;for(let t=r.length-1;t>=0;t--)if(r[t]instanceof ot){e=t;break}return e===-1?"":r.slice(e+1).filter(t=>t instanceof ce).map(t=>t.content).join(`
130
+ `)},Kw=["x-stainless-package-version","x-stainless-timeout","x-stainless-retry-count","x-stainless-lang","x-stainless-os","x-stainless-arch","x-stainless-runtime","x-stainless-runtime-version","x-stainless-helper-method","api-key"],Ag=r=>async(e,t)=>{let n=new Headers(t?.headers);return Kw.forEach(s=>n.delete(s)),r&&r.length>0&&n.set("X-Esri-Authorization",`Bearer ${r}`),await fetch(e,{...t,headers:n})},Gp=async(r="default",e=0)=>{let t=vu.getDefault(),n=await Wp.getCredential(`${t.url}/sharing`),s=yg[r],i=Tw(r),o=Hp[s];return new _u({temperature:e,azureOpenAIApiKey:"x",azureOpenAIBasePath:i,azureOpenAIApiDeploymentName:o.deploymentName,azureOpenAIApiVersion:o.apiVersion,model:s,configuration:{fetch:Ag(n.token)}})},Ww=r=>{let e=new Set;for(let t of r)if(jt(t)){let n=t;n.tool_calls&&n.tool_calls.length>0&&n.tool_calls.forEach(s=>{s.id&&e.add(s.id)})}return r.filter(t=>{if(xo(t)){let n=t;return e.has(n.tool_call_id)}return!0})},qp=(r,e)=>{let t=Bu.fromTemplate(r);return Qr.fromMessages([t,...e])},Hw=async r=>{let{promptText:e,modelTier:t,temperature:n,messages:s}=r,i=qp(e,s??[]),o=await Gp(t,n);return i.pipe(o)},BL=async r=>{let{promptText:e,modelTier:t="default",temperature:n=0,messages:s,inputVariables:i}=r,o=await(await Hw({promptText:e,modelTier:t,temperature:n,messages:s})).invoke(i??{});if(typeof o=="string")return o;let a=o.content;return typeof a=="string"?a:JSON.stringify(a)},Jp=async r=>{let{promptText:e,modelTier:t="default",temperature:n=0,messages:s,inputVariables:i,schema:o}=r,a=qp(e,s??[]),u=(await Gp(t,n)).withStructuredOutput(o);return await a.pipe(u).invoke(i??{})},KL=async r=>{let{promptText:e,modelTier:t="default",temperature:n=0,messages:s,inputVariables:i,tools:o}=r,a=o.length>0?Ww(s??[]):s??[],u=qp(e,a),c=await Gp(t,n);return await u.pipe(c.bindTools(o)).invoke(i??{})},Vw=ae.object({id:ae.string().min(1),name:ae.string().min(1),description:ae.string().min(1)});ae.array(Vw);var Gw=r=>{let e=r.map(n=>n.id),t=ae.enum(e);return ae.object({intents:ae.array(t)})},qw=async(r,e)=>{try{await xr({text:"Asking LLM to detect intents"},e);let t=await Vp("intent_prompt"),n=(e?.configurable?.services.agentRegistry?.list()??[]).map(({agent:f})=>({id:f.id,name:f.name,description:f.description}));if(!n.length)return await xr({text:"No agents registered; skipping intent detection"},e),{...r,currentIntent:"none",pendingIntents:[]};let s=n.map(f=>JSON.stringify(f)).join(`
131
+ `),i=n.length,o=Gw(n),a={maxIntents:i,registeredAgents:s},u=await Jp({promptText:t,modelTier:"fast",schema:o,messages:zw(r.messages),inputVariables:a}),c=new Set,l=(u.intents??[]).filter(f=>c.has(f)?!1:(c.add(f),!0)).slice(0,i),p=l[0]??"none",h={...r,currentIntent:p,pendingIntents:l};return await xr({text:`Intents came back as: ${l.join(", ")||"none"}`},e),h}catch(t){throw await xr({text:"Error during intent detection"},e),new Error(`Error during intent detection: ${t instanceof Error?t.message:String(t)}`)}},Jw=()=>new bn(jw).addNode("ingestInput",Dw).addNode("intentLLM",qw).addNode("intentDispatcher",Lw).addNode("executeRegisteredAgent",Fw).addNode("exit",$w).addEdge(q,"ingestInput").addEdge("ingestInput","intentLLM").addEdge("intentLLM","intentDispatcher").addConditionalEdges("intentDispatcher",r=>r.currentIntent==="none"?"exit":"executeRegisteredAgent").addEdge("executeRegisteredAgent","intentDispatcher").addEdge("exit",K),Bp=class{constructor(){this.agentRegistry=new Map}register(e){let{agent:t}=e;if(this.agentRegistry.has(t.id))throw new Error(`Duplicate agent id: ${t.id}`);this.agentRegistry.set(t.id,e)}get(e){return this.agentRegistry.get(e)}list(){return[...this.agentRegistry.values()]}},Kp=class{constructor(e,t){this.graph=e,this.config={...t}}async waitForUser(){return await new Promise((e,t)=>{this.resolveWait=e,this.rejectWait=t})}handle(e,t){try{let n={agentId:e.agentId,id:e.id,payload:t},s=this.graph.streamEvents(null,{...this.config,configurable:{...this.config.configurable,hitlResponse:n},subgraphs:!0,version:"v2"});this.resolveWait?.(s)}catch(n){this.rejectWait?.(n)}finally{this.resolveWait=void 0,this.rejectWait=void 0}}cancel(){this.rejectWait&&(this.rejectWait(new Error("User cancelled HITL")),this.resolveWait=void 0,this.rejectWait=void 0)}},Xw=pt.object({name:pt.string(),description:pt.string(),valueType:pt.string(),alias:pt.string()}),Yw=pt.object({fields:pt.array(Xw)});function gg(r,e){let t=new Map;for(let n of r.fields){let s=e.fields.find(o=>o.name===n.name),i={name:n.name,type:n.type,alias:s?.alias??n.alias??"",description:s?.description??n.description??"",valueType:s?.valueType??n.valueType??""};t.set(n.name,i)}return t}var Zw=async r=>{let e=await Vp("field_descriptions_prompt"),t=r.fields.filter(i=>!(i.alias&&i.description)).map(i=>{let{name:o,type:a,alias:u,description:c}=i;return[`Name: ${o}`,`Type: ${a}`,`Alias: ${u}`,`Description: ${c??"N/A"}`].join(", ")}).join(`
132
+ `);if(t.length===0)return gg(r,{fields:[]});let n={existingItemTitle:r.portalItem?.title,existingItemDescription:r.portalItem?.description,existingLayerTitle:r.title,existingLayerDescription:r.portalItem?.description,fieldInformation:t},s=await Jp({promptText:e,modelTier:"fast",schema:Yw,inputVariables:n});return gg(r,s)},Qw=pt.object({title:pt.string(),description:pt.string(),name:pt.string().nullable()}),e0=async(r,e)=>{let t=await Vp("layer_descriptions_prompt"),n=Array.from(e.values()),s={fieldInformation:JSON.stringify(n,null,2),existingLayerTitle:r.title,existingLayerDescription:r.portalItem?.description,existingLayerSnippet:r.portalItem?.snippet,layerGeometryType:r.geometryType};return{...await Jp({promptText:t,modelTier:"fast",schema:Qw,inputVariables:s}),name:r.title??null}},t0=async r=>{let e=r.allLayers.toArray(),t=[],n=new Map;for(let s of e)if(s instanceof Cw){let i=(async()=>{let o=await Zw(s),a=await e0(s,o);n.set(s.id,{layerItem:a,fieldRegistry:o})})();t.push(i)}return await Promise.all(t),n},r0=async r=>{let e=_g.default,t=Hp[e],n=vg("default"),s=vu.getDefault(),i=(await Wp.getCredential(`${s.url}/sharing`)).token;return await new xu({azureOpenAIApiKey:"x",azureOpenAIBasePath:n,azureOpenAIApiDeploymentName:t.deploymentName,azureOpenAIApiVersion:t.apiVersion,model:e,configuration:{fetch:Ag(i)}}).embedQuery(r)},Og=async(r,e)=>{let t=e.get(r);if(t)return t;let n=await r0(r);return e.set(r,n),n};async function n0(r,e,t,n){let s=`req-${Date.now()}`,i={type:"layerSearch",precomputedEmbedding:n?await Og(r,n):void 0,requestId:s};return await new Promise(o=>{let a=u=>{if(u.data.requestId!==s)return;let c=u.data.results.filter(([,l])=>l>=t).map(([l,p])=>({id:l.id??"",score:p}));o(c)};e.addEventListener("message",a,{once:!0}),e.postMessage(i)})}function s0(r){let{worker:e}=r;return{async searchLayers({text:t,minScore:n,embeddingCache:s}){return await n0(t,e,n,s)}}}var i0=async({combinedQuery:r,layerIds:e,embeddingsWorker:t,minScore:n,topResults:s,embeddingCache:i})=>{let o=`req-${Date.now()}`,a=i?await Og(r,i):void 0,u={type:"fieldSearch",layerIdForFieldsSearch:e,precomputedEmbedding:a,requestId:o};return await new Promise(c=>{let l=p=>{if(p.data.requestId!==o)return;let h=p.data.results.map(({layerId:f,results:g})=>{let b=g.filter(([,_])=>_>=n).map(([_,P])=>({name:_.id??"",score:P})).sort((_,P)=>P.score-_.score).slice(0,s);return{layerId:f,results:b}});c(h)};t.addEventListener("message",l,{once:!0}),t.postMessage(u)})};function o0(r){let{worker:e}=r;return{async searchFields({text:t,layerIds:n,minScore:s,topResults:i,embeddingCache:o}){return await i0({combinedQuery:t,layerIds:n,embeddingsWorker:e,minScore:s,topResults:i,embeddingCache:o})}}}var bg=class r{constructor(e){this.deps=e,this.orchestratorReady=!1,this.chatHistory=[],this.threadId="",this.agentRegistry=new Bp,this.streamEpoch=0}static async init(e){let t=new r(e);if(e.view?.map){let n=await t0(e.view.map);t.layersAndFieldsRegistry=n,t.embeddingsWorker=await Rw(n)}return e.agents?.forEach(n=>{t.agentRegistry.register(n)}),t.orchestratorReady=!0,t}async*ask(e){if(!this.orchestratorReady)throw new Error("Orchestrator is not ready yet.");if(!this.agentRegistry.list().length)throw new Error("Orchestrator has no registered agents.");if(++this.streamEpoch,!e.trim())return;this.threadId=String(Date.now()),this.graph||(this.graph=Jw().compile({checkpointer:new is}));let t=this.embeddingsWorker?s0({worker:this.embeddingsWorker}):void 0,n=this.embeddingsWorker?o0({worker:this.embeddingsWorker}):void 0,s=new Map,i={version:"v2",streamMode:"custom",configurable:{thread_id:this.threadId,hitlResponse:null,services:{layerSearch:t,fieldSearch:n,layersAndFieldsRegistry:this.layersAndFieldsRegistry,agentRegistry:this.agentRegistry,portal:this.deps.portal,embeddingCache:s}},subgraphs:!0},o=this.graph?.streamEvents({userInput:e,messages:this.chatHistory},i),a=++this.streamEpoch;for(yield*this.pipeStream(o,a);;){let c=(await this.graph.getState(i,{subgraphs:!0})).tasks.find(l=>l.interrupts.length>0)?.interrupts[0]?.value;if(!c)break;this.currentInterrupt=c,this.interruptHandler=new Kp(this.graph,i),yield{runId:this.threadId,timestamp:Date.now(),type:"interrupt",interrupt:c};try{let l=await this.interruptHandler.waitForUser(),p=++this.streamEpoch;yield*this.pipeStream(l,p)}catch(l){if(l){yield{runId:this.threadId,timestamp:Date.now(),type:"error",error:{message:l?.message}};return}yield{runId:this.threadId,timestamp:Date.now(),type:"cancelled"};return}}let u=(await this.graph.getState(i,{subgraphs:!0})).values;this.chatHistory=u.messages.length?u.messages:this.chatHistory,yield{runId:this.threadId,timestamp:Date.now(),type:"completed",result:{content:Bw(u.messages)}}}newConversation(){this.chatHistory=[]}resumeInterrupt(e){if(!this.currentInterrupt||!this.interruptHandler)throw new Error("No pending interrupt to resume.");this.interruptHandler.handle(this.currentInterrupt,e)}cancelInterrupt(){this.interruptHandler&&this.interruptHandler.cancel()}async*pipeStream(e,t){for await(let n of e){if(t!==this.streamEpoch){console.log("Stale stream detected, aborting.");break}n.event==="on_custom_event"&&n.name==="trace_message"?yield{runId:this.threadId,timestamp:Date.now(),type:"trace",data:n.data}:n.name==="graph_ux_suggestion"&&(yield{runId:this.threadId,timestamp:Date.now(),type:"ux-suggestion",suggestion:n.data})}}dispose(){this.embeddingsWorker&&(this.embeddingsWorker.terminate(),this.embeddingsWorker=void 0),this.orchestratorReady=!1}};return{a:pi,b:Pr,c:$b,d:lt,e:pt,f:q,g:K,h:Ee,i:Ce,j:Te,k:Ie,l:bn,m:jr,n:xr,o:zL,p:BL,q:Jp,r:KL,s:bg}},"identity/IdentityManager","portal/Portal","layers/FeatureLayer",a)