@arcgis/ai-components 5.2.0-next.98 → 6.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (736) hide show
  1. package/dist/agent-utils/BaseAgent.d.ts +18 -34
  2. package/dist/agent-utils/BaseAgent.js +53 -54
  3. package/dist/agent-utils/FunctionAgent.d.ts +11 -17
  4. package/dist/agent-utils/FunctionAgent.js +24 -60
  5. package/dist/agent-utils/LLMAgent.d.ts +18 -24
  6. package/dist/agent-utils/LLMAgent.js +71 -106
  7. package/dist/agent-utils/SkillAgent.d.ts +66 -0
  8. package/dist/agent-utils/SkillAgent.js +37 -0
  9. package/dist/agent-utils/WorkflowAgent.d.ts +10 -16
  10. package/dist/agent-utils/WorkflowAgent.js +19 -55
  11. package/dist/agent-utils/createSchema.d.ts +12 -0
  12. package/dist/agent-utils/createSchema.js +8 -0
  13. package/dist/agent-utils/middlewares/humanInTheLoop.d.ts +1 -1
  14. package/dist/agent-utils/middlewares/trace.js +8 -8
  15. package/dist/agent-utils/tools/FunctionTool.d.ts +8 -9
  16. package/dist/agent-utils/tools/FunctionTool.js +21 -52
  17. package/dist/agent-utils/types.d.ts +30 -34
  18. package/dist/agent-utils/workflows/BaseWorkflow.d.ts +6 -7
  19. package/dist/agent-utils/workflows/ConditionalWorkflow.d.ts +2 -2
  20. package/dist/agent-utils/workflows/ConditionalWorkflow.js +14 -29
  21. package/dist/agent-utils/workflows/LoopWorkflow.d.ts +3 -7
  22. package/dist/agent-utils/workflows/LoopWorkflow.js +14 -29
  23. package/dist/agent-utils/workflows/ParallelWorkflow.d.ts +2 -6
  24. package/dist/agent-utils/workflows/ParallelWorkflow.js +69 -78
  25. package/dist/agent-utils/workflows/RouterWorkflow.d.ts +3 -3
  26. package/dist/agent-utils/workflows/RouterWorkflow.js +30 -47
  27. package/dist/agent-utils/workflows/SequentialWorkflow.d.ts +1 -1
  28. package/dist/agent-utils/workflows/SequentialWorkflow.js +15 -27
  29. package/dist/agent-utils/workflows/SwitchWorkflow.d.ts +3 -3
  30. package/dist/agent-utils/workflows/SwitchWorkflow.js +30 -49
  31. package/dist/agentic-workflow/jsonTypes.d.ts +116 -46
  32. package/dist/agents/agents/arcgisKnowledge/graph/arcgisKnowledgeGraph.d.ts +8 -0
  33. package/dist/{chunks → agents/agents/arcgisKnowledge/graph}/arcgisKnowledgeGraph.js +21 -29
  34. package/dist/agents/agents/dataExploration/dataExplorationAgent.d.ts +18 -0
  35. package/dist/agents/agents/dataExploration/dataExplorationAgent.js +17 -0
  36. package/dist/agents/agents/dataExplorationGraph/graph/dataExplorationGraph.d.ts +8 -0
  37. package/dist/{chunks → agents/agents/dataExplorationGraph/graph}/dataExplorationGraph.js +39 -46
  38. package/dist/agents/agents/help/helpAgent.d.ts +8 -0
  39. package/dist/agents/agents/help/helpAgent.js +32 -0
  40. package/dist/agents/agents/helpGraph/graph/helpGraph.d.ts +8 -0
  41. package/dist/{chunks → agents/agents/helpGraph/graph}/helpGraph.js +23 -32
  42. package/dist/agents/agents/layerStyling/context/layerStylingContext.d.ts +11 -0
  43. package/dist/agents/agents/layerStyling/context/layerStylingContext.js +5 -0
  44. package/dist/agents/agents/layerStyling/graph/layerStylingGraph.d.ts +8 -0
  45. package/dist/{chunks → agents/agents/layerStyling/graph}/layerStylingGraph.js +31 -40
  46. package/dist/agents/agents/navigation/navigationAgent.d.ts +18 -0
  47. package/dist/agents/agents/navigation/navigationAgent.js +25 -0
  48. package/dist/agents/agents/navigationGraph/graph/navigationGraph.d.ts +8 -0
  49. package/dist/{chunks → agents/agents/navigationGraph/graph}/navigationGraph.js +116 -122
  50. package/dist/agents/tools/filter/setFeatureEffect/adapter.js +54 -41
  51. package/dist/agents/tools/navigation/goToAddress/adapter.js +39 -31
  52. package/dist/agents/tools/query/getStatistics/adapter.js +60 -56
  53. package/dist/agents/tools/query/getTopFeatures/adapter.js +120 -92
  54. package/dist/agents/tools/query/queryFeatures/adapter.js +47 -43
  55. package/dist/agents/tools/shared/resolveToolArtifact.d.ts +24 -0
  56. package/dist/agents/tools/shared/resolveToolArtifact.js +20 -0
  57. package/dist/agents/tools/shared/types.d.ts +22 -0
  58. package/dist/agents/tools/shared/types.js +6 -0
  59. package/dist/cdn/25CQLMB4.js +2 -0
  60. package/dist/cdn/{COH3QXWG.js → 2FUTKTNO.js} +2 -2
  61. package/dist/cdn/{5MK44FNO.js → 2GSHUAQ2.js} +1 -1
  62. package/dist/cdn/2UKFCF2J.js +150 -0
  63. package/dist/cdn/{MWYBF3F3.js → 2XXM52PS.js} +5 -5
  64. package/dist/cdn/{YEZ3AMNX.js → 2ZH5JNHL.js} +1 -1
  65. package/dist/cdn/34HKOU3T.js +2 -0
  66. package/dist/cdn/37EJSNE3.js +2 -0
  67. package/dist/cdn/3HV6OXCZ.js +2 -0
  68. package/dist/cdn/3WS4DSWD.js +2 -0
  69. package/dist/cdn/43OJZMBB.js +2 -0
  70. package/dist/cdn/46DT6BIG.js +68 -0
  71. package/dist/cdn/4BRIOLDJ.js +2 -0
  72. package/dist/cdn/4KFTUBFL.js +2 -0
  73. package/dist/cdn/{7SRLZQVC.js → 4OLV5LA7.js} +1 -1
  74. package/dist/cdn/4ZPGFIE2.js +2 -0
  75. package/dist/cdn/645SDZBB.js +2 -0
  76. package/dist/cdn/{LLUGJKAQ.js → 6GQCLDLJ.js} +1 -1
  77. package/dist/cdn/6JCDY4FL.js +2 -0
  78. package/dist/cdn/74CVYM72.js +19 -0
  79. package/dist/cdn/7DRHB24Z.js +2 -0
  80. package/dist/cdn/7GQCNR4P.js +11 -0
  81. package/dist/cdn/7OQA4GCM.js +2 -0
  82. package/dist/cdn/A3KIOUWB.js +2 -0
  83. package/dist/cdn/AAUVOBPS.js +2 -0
  84. package/dist/cdn/AMFZY5QK.js +18 -0
  85. package/dist/cdn/B2JRBDJZ.js +2 -0
  86. package/dist/cdn/B4C7NIB5.js +23 -0
  87. package/dist/cdn/BIEX4MVV.js +9 -0
  88. package/dist/cdn/BKKLQUK2.js +2 -0
  89. package/dist/cdn/CADNOKIK.js +2 -0
  90. package/dist/cdn/CFAC4FN3.js +2 -0
  91. package/dist/cdn/DQRKGYR3.js +2 -0
  92. package/dist/cdn/DWMZ23QK.js +2 -0
  93. package/dist/cdn/DXCDVRGL.js +2 -0
  94. package/dist/cdn/DYSPEU7W.js +2 -0
  95. package/dist/cdn/{5WYRJMBW.js → ENVTUTY6.js} +1 -1
  96. package/dist/cdn/EOSKJPQV.js +2 -0
  97. package/dist/cdn/EU6YSCZL.js +2 -0
  98. package/dist/cdn/EXIA3APU.js +75 -0
  99. package/dist/cdn/F7VQ3WH2.js +2 -0
  100. package/dist/cdn/FBIPIDP7.js +2 -0
  101. package/dist/cdn/FFWPUYGD.js +6 -0
  102. package/dist/cdn/FX4LV2S3.js +2 -0
  103. package/dist/cdn/{5HBAJ57P.js → FXRZCD5Y.js} +1 -1
  104. package/dist/cdn/GEFFWUB2.js +2 -0
  105. package/dist/cdn/GMZUN5SF.js +2 -0
  106. package/dist/cdn/{C4FEETBZ.js → GOET2CH4.js} +1 -1
  107. package/dist/cdn/GVFJHADC.js +2 -0
  108. package/dist/cdn/H7WJUUJT.js +2 -0
  109. package/dist/cdn/HWNPZ4CF.js +2 -0
  110. package/dist/cdn/I5OBL24F.js +2 -0
  111. package/dist/cdn/I7PHDOEQ.js +2 -0
  112. package/dist/cdn/{HHFNQR6Z.js → IEAHAC6B.js} +1 -1
  113. package/dist/cdn/ISDNOFHU.js +3 -0
  114. package/dist/cdn/J37GSI7C.js +2 -0
  115. package/dist/cdn/JZS6ZSWH.js +2 -0
  116. package/dist/cdn/KEBMHD4R.js +9 -0
  117. package/dist/cdn/KJZVYKWL.js +2 -0
  118. package/dist/cdn/KKXOSV62.js +2 -0
  119. package/dist/cdn/KPHHXMRK.js +2 -0
  120. package/dist/cdn/LCI5MEDN.js +2 -0
  121. package/dist/cdn/LVSIZRTB.js +2 -0
  122. package/dist/cdn/M7TMD2HP.js +41 -0
  123. package/dist/cdn/MHUEU6MR.js +2 -0
  124. package/dist/cdn/MPWEXYYB.js +2 -0
  125. package/dist/cdn/MQSOVP27.js +2 -0
  126. package/dist/cdn/NN6MELJ7.js +2 -0
  127. package/dist/cdn/O62IJLTZ.js +2 -0
  128. package/dist/cdn/OFM2S6U7.js +2 -0
  129. package/dist/cdn/{VXFQANGJ.js → OJP56R5R.js} +1 -1
  130. package/dist/cdn/{BL273EGZ.js → OT5ECP4V.js} +2 -0
  131. package/dist/cdn/OVIQ5NSE.js +2 -0
  132. package/dist/cdn/OYHYHALE.js +2 -0
  133. package/dist/cdn/{VOKXKU7M.js → Q6PCXSZT.js} +10 -10
  134. package/dist/cdn/QJOO6IIX.js +119 -0
  135. package/dist/cdn/QQPVN5MG.js +2 -0
  136. package/dist/cdn/QUZTFUWM.js +1 -0
  137. package/dist/cdn/RBRHDEOB.js +2 -0
  138. package/dist/cdn/REE4K4J7.js +2 -0
  139. package/dist/cdn/RFKOCMMT.js +2 -0
  140. package/dist/cdn/RKHDRUX5.js +2 -0
  141. package/dist/cdn/SBIYXWXZ.js +2 -0
  142. package/dist/cdn/T2FKFOHE.js +2 -0
  143. package/dist/cdn/{KWD2ECTM.js → TGI7QCB2.js} +1 -1
  144. package/dist/cdn/TPMZRJEC.js +2 -0
  145. package/dist/cdn/TRZJYWEB.js +33 -0
  146. package/dist/cdn/TTPTZBCM.js +2 -0
  147. package/dist/cdn/U3ZTF2BC.js +2 -0
  148. package/dist/cdn/U53SVXZK.js +3 -0
  149. package/dist/cdn/UALF45Q2.js +2 -0
  150. package/dist/cdn/{K2R6XVK3.js → UPSFL6U3.js} +1 -1
  151. package/dist/cdn/UYEF3IKE.js +44 -0
  152. package/dist/cdn/V6AQFRUC.js +2 -0
  153. package/dist/cdn/V7ERVXIO.js +2 -0
  154. package/dist/cdn/VIJVRJHL.js +2 -0
  155. package/dist/cdn/VVWKEN53.js +8 -0
  156. package/dist/cdn/W3OJTTVX.js +2 -0
  157. package/dist/cdn/W3ZLMBEE.js +155 -0
  158. package/dist/cdn/W6TS2TIE.js +2 -0
  159. package/dist/cdn/WB5AFS42.js +2 -0
  160. package/dist/cdn/WC6SHIEX.js +2 -0
  161. package/dist/cdn/WSIZ2OTL.js +2 -0
  162. package/dist/cdn/WVMQ3I6F.js +2 -0
  163. package/dist/cdn/XI4BPYGB.js +2 -0
  164. package/dist/cdn/{Z5W4V7RC.js → XJUYG2M3.js} +1 -1
  165. package/dist/cdn/XPSPAZUD.js +2 -0
  166. package/dist/cdn/XQ3NBBQ3.js +2 -0
  167. package/dist/cdn/{HHUQXL3R.js → YAUQJ6NV.js} +1 -1
  168. package/dist/cdn/YD3DLETZ.js +2 -0
  169. package/dist/cdn/YKKIJTJY.js +2 -0
  170. package/dist/cdn/YO3L3XIH.js +2 -0
  171. package/dist/cdn/YOQCQAKT.js +2 -0
  172. package/dist/cdn/ZBBI5M2X.js +14 -0
  173. package/dist/cdn/{KITIP6J2.js → ZBRZU4XB.js} +1 -1
  174. package/dist/cdn/ZCNCYKXW.js +14 -0
  175. package/dist/cdn/ZESTW6HJ.js +2 -0
  176. package/dist/cdn/ZKDCEL6K.js +2 -0
  177. package/dist/cdn/{6ECRQVHY.js → ZMMUAYDN.js} +1 -1
  178. package/dist/cdn/ZQTCPJUV.js +2 -0
  179. package/dist/cdn/ZS5P7NRI.js +2 -0
  180. package/dist/cdn/agent-utils/BaseAgent.js +2 -0
  181. package/dist/cdn/agent-utils/FunctionAgent.js +2 -0
  182. package/dist/cdn/agent-utils/LLMAgent.js +2 -0
  183. package/dist/cdn/agent-utils/SkillAgent.js +2 -0
  184. package/dist/cdn/agent-utils/WorkflowAgent.js +2 -0
  185. package/dist/cdn/agent-utils/createSchema.js +2 -0
  186. package/dist/cdn/agent-utils/middlewares/humanInTheLoop.js +1 -2
  187. package/dist/cdn/agent-utils/middlewares/middleware.js +1 -1
  188. package/dist/cdn/agent-utils/middlewares/trace.js +1 -1
  189. package/dist/cdn/agent-utils/tools/FunctionTool.js +2 -0
  190. package/dist/cdn/agent-utils/workflows/ConditionalWorkflow.js +2 -0
  191. package/dist/cdn/agent-utils/workflows/LoopWorkflow.js +2 -0
  192. package/dist/cdn/agent-utils/workflows/ParallelWorkflow.js +6 -0
  193. package/dist/cdn/agent-utils/workflows/RouterWorkflow.js +2 -0
  194. package/dist/cdn/agent-utils/workflows/SequentialWorkflow.js +2 -0
  195. package/dist/cdn/agent-utils/workflows/SwitchWorkflow.js +2 -0
  196. package/dist/cdn/assets/agents/t9n/messages.ar.json +1 -0
  197. package/dist/cdn/assets/agents/t9n/messages.bg.json +1 -0
  198. package/dist/cdn/assets/agents/t9n/messages.ca.json +1 -0
  199. package/dist/cdn/assets/agents/t9n/messages.cs.json +1 -0
  200. package/dist/cdn/assets/agents/t9n/messages.da.json +1 -0
  201. package/dist/cdn/assets/agents/t9n/messages.de.json +1 -0
  202. package/dist/cdn/assets/agents/t9n/messages.el.json +1 -0
  203. package/dist/cdn/assets/agents/t9n/messages.en.json +1 -0
  204. package/dist/cdn/assets/agents/t9n/messages.es.json +1 -0
  205. package/dist/cdn/assets/agents/t9n/messages.et.json +1 -0
  206. package/dist/cdn/assets/agents/t9n/messages.fi.json +1 -0
  207. package/dist/cdn/assets/agents/t9n/messages.fr.json +1 -0
  208. package/dist/cdn/assets/agents/t9n/messages.he.json +1 -0
  209. package/dist/cdn/assets/agents/t9n/messages.hr.json +1 -0
  210. package/dist/cdn/assets/agents/t9n/messages.hu.json +1 -0
  211. package/dist/cdn/assets/agents/t9n/messages.id.json +1 -0
  212. package/dist/cdn/assets/agents/t9n/messages.it.json +1 -0
  213. package/dist/cdn/assets/agents/t9n/messages.ja.json +1 -0
  214. package/dist/cdn/assets/agents/t9n/messages.ko.json +1 -0
  215. package/dist/cdn/assets/agents/t9n/messages.lt.json +1 -0
  216. package/dist/cdn/assets/agents/t9n/messages.lv.json +1 -0
  217. package/dist/cdn/assets/agents/t9n/messages.nl.json +1 -0
  218. package/dist/cdn/assets/agents/t9n/messages.no.json +1 -0
  219. package/dist/cdn/assets/agents/t9n/messages.pl.json +1 -0
  220. package/dist/cdn/assets/agents/t9n/messages.pt-BR.json +1 -0
  221. package/dist/cdn/assets/agents/t9n/messages.pt-PT.json +1 -0
  222. package/dist/cdn/assets/agents/t9n/messages.ro.json +1 -0
  223. package/dist/cdn/assets/agents/t9n/messages.ru.json +1 -0
  224. package/dist/cdn/assets/agents/t9n/messages.sk.json +1 -0
  225. package/dist/cdn/assets/agents/t9n/messages.sl.json +1 -0
  226. package/dist/cdn/assets/agents/t9n/messages.sr.json +1 -0
  227. package/dist/cdn/assets/agents/t9n/messages.sv.json +1 -0
  228. package/dist/cdn/assets/agents/t9n/messages.th.json +1 -0
  229. package/dist/cdn/assets/agents/t9n/messages.tr.json +1 -0
  230. package/dist/cdn/assets/agents/t9n/messages.uk.json +1 -0
  231. package/dist/cdn/assets/agents/t9n/messages.vi.json +1 -0
  232. package/dist/cdn/assets/agents/t9n/messages.zh-CN.json +1 -0
  233. package/dist/cdn/assets/agents/t9n/messages.zh-TW.json +1 -0
  234. package/dist/cdn/assets/assistant/t9n/messages.ar.json +1 -1
  235. package/dist/cdn/assets/assistant/t9n/messages.bg.json +1 -1
  236. package/dist/cdn/assets/assistant/t9n/messages.bs.json +1 -1
  237. package/dist/cdn/assets/assistant/t9n/messages.ca.json +1 -1
  238. package/dist/cdn/assets/assistant/t9n/messages.cs.json +1 -1
  239. package/dist/cdn/assets/assistant/t9n/messages.da.json +1 -1
  240. package/dist/cdn/assets/assistant/t9n/messages.de.json +1 -1
  241. package/dist/cdn/assets/assistant/t9n/messages.el.json +1 -1
  242. package/dist/cdn/assets/assistant/t9n/messages.en.json +1 -1
  243. package/dist/cdn/assets/assistant/t9n/messages.es.json +1 -1
  244. package/dist/cdn/assets/assistant/t9n/messages.et.json +1 -1
  245. package/dist/cdn/assets/assistant/t9n/messages.fi.json +1 -1
  246. package/dist/cdn/assets/assistant/t9n/messages.fr.json +1 -1
  247. package/dist/cdn/assets/assistant/t9n/messages.he.json +1 -1
  248. package/dist/cdn/assets/assistant/t9n/messages.hr.json +1 -1
  249. package/dist/cdn/assets/assistant/t9n/messages.hu.json +1 -1
  250. package/dist/cdn/assets/assistant/t9n/messages.id.json +1 -1
  251. package/dist/cdn/assets/assistant/t9n/messages.it.json +1 -1
  252. package/dist/cdn/assets/assistant/t9n/messages.ja.json +1 -1
  253. package/dist/cdn/assets/assistant/t9n/messages.ko.json +1 -1
  254. package/dist/cdn/assets/assistant/t9n/messages.lt.json +1 -1
  255. package/dist/cdn/assets/assistant/t9n/messages.lv.json +1 -1
  256. package/dist/cdn/assets/assistant/t9n/messages.nl.json +1 -1
  257. package/dist/cdn/assets/assistant/t9n/messages.no.json +1 -1
  258. package/dist/cdn/assets/assistant/t9n/messages.pl.json +1 -1
  259. package/dist/cdn/assets/assistant/t9n/messages.pt-BR.json +1 -1
  260. package/dist/cdn/assets/assistant/t9n/messages.pt-PT.json +1 -1
  261. package/dist/cdn/assets/assistant/t9n/messages.ro.json +1 -1
  262. package/dist/cdn/assets/assistant/t9n/messages.ru.json +1 -1
  263. package/dist/cdn/assets/assistant/t9n/messages.sk.json +1 -1
  264. package/dist/cdn/assets/assistant/t9n/messages.sl.json +1 -1
  265. package/dist/cdn/assets/assistant/t9n/messages.sr.json +1 -1
  266. package/dist/cdn/assets/assistant/t9n/messages.sv.json +1 -1
  267. package/dist/cdn/assets/assistant/t9n/messages.th.json +1 -1
  268. package/dist/cdn/assets/assistant/t9n/messages.tr.json +1 -1
  269. package/dist/cdn/assets/assistant/t9n/messages.uk.json +1 -1
  270. package/dist/cdn/assets/assistant/t9n/messages.vi.json +1 -1
  271. package/dist/cdn/assets/assistant/t9n/messages.zh-CN.json +1 -1
  272. package/dist/cdn/assets/assistant/t9n/messages.zh-HK.json +1 -1
  273. package/dist/cdn/assets/assistant/t9n/messages.zh-TW.json +1 -1
  274. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.ar.json +1 -1
  275. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.bg.json +1 -1
  276. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.bs.json +1 -1
  277. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.ca.json +1 -1
  278. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.cs.json +1 -1
  279. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.da.json +1 -1
  280. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.de.json +1 -1
  281. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.el.json +1 -1
  282. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.en.json +1 -1
  283. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.es.json +1 -1
  284. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.et.json +1 -1
  285. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.fi.json +1 -1
  286. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.fr.json +1 -1
  287. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.he.json +1 -1
  288. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.hr.json +1 -1
  289. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.hu.json +1 -1
  290. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.id.json +1 -1
  291. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.it.json +1 -1
  292. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.ja.json +1 -1
  293. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.ko.json +1 -1
  294. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.lt.json +1 -1
  295. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.lv.json +1 -1
  296. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.nl.json +1 -1
  297. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.no.json +1 -1
  298. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.pl.json +1 -1
  299. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.pt-BR.json +1 -1
  300. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.pt-PT.json +1 -1
  301. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.ro.json +1 -1
  302. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.ru.json +1 -1
  303. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.sk.json +1 -1
  304. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.sl.json +1 -1
  305. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.sr.json +1 -1
  306. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.sv.json +1 -1
  307. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.th.json +1 -1
  308. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.tr.json +1 -1
  309. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.uk.json +1 -1
  310. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.vi.json +1 -1
  311. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.zh-CN.json +1 -1
  312. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.zh-HK.json +1 -1
  313. package/dist/cdn/assets/assistant-chat-entry/t9n/messages.zh-TW.json +1 -1
  314. package/dist/cdn/assets/assistant-interrupt/t9n/messages.ar.json +1 -1
  315. package/dist/cdn/assets/assistant-interrupt/t9n/messages.bg.json +1 -1
  316. package/dist/cdn/assets/assistant-interrupt/t9n/messages.bs.json +1 -1
  317. package/dist/cdn/assets/assistant-interrupt/t9n/messages.ca.json +1 -1
  318. package/dist/cdn/assets/assistant-interrupt/t9n/messages.cs.json +1 -1
  319. package/dist/cdn/assets/assistant-interrupt/t9n/messages.da.json +1 -1
  320. package/dist/cdn/assets/assistant-interrupt/t9n/messages.de.json +1 -1
  321. package/dist/cdn/assets/assistant-interrupt/t9n/messages.el.json +1 -1
  322. package/dist/cdn/assets/assistant-interrupt/t9n/messages.en.json +1 -1
  323. package/dist/cdn/assets/assistant-interrupt/t9n/messages.es.json +1 -1
  324. package/dist/cdn/assets/assistant-interrupt/t9n/messages.et.json +1 -1
  325. package/dist/cdn/assets/assistant-interrupt/t9n/messages.fi.json +1 -1
  326. package/dist/cdn/assets/assistant-interrupt/t9n/messages.fr.json +1 -1
  327. package/dist/cdn/assets/assistant-interrupt/t9n/messages.he.json +1 -1
  328. package/dist/cdn/assets/assistant-interrupt/t9n/messages.hr.json +1 -1
  329. package/dist/cdn/assets/assistant-interrupt/t9n/messages.hu.json +1 -1
  330. package/dist/cdn/assets/assistant-interrupt/t9n/messages.id.json +1 -1
  331. package/dist/cdn/assets/assistant-interrupt/t9n/messages.it.json +1 -1
  332. package/dist/cdn/assets/assistant-interrupt/t9n/messages.ja.json +1 -1
  333. package/dist/cdn/assets/assistant-interrupt/t9n/messages.ko.json +1 -1
  334. package/dist/cdn/assets/assistant-interrupt/t9n/messages.lt.json +1 -1
  335. package/dist/cdn/assets/assistant-interrupt/t9n/messages.lv.json +1 -1
  336. package/dist/cdn/assets/assistant-interrupt/t9n/messages.nl.json +1 -1
  337. package/dist/cdn/assets/assistant-interrupt/t9n/messages.no.json +1 -1
  338. package/dist/cdn/assets/assistant-interrupt/t9n/messages.pl.json +1 -1
  339. package/dist/cdn/assets/assistant-interrupt/t9n/messages.pt-BR.json +1 -1
  340. package/dist/cdn/assets/assistant-interrupt/t9n/messages.pt-PT.json +1 -1
  341. package/dist/cdn/assets/assistant-interrupt/t9n/messages.ro.json +1 -1
  342. package/dist/cdn/assets/assistant-interrupt/t9n/messages.ru.json +1 -1
  343. package/dist/cdn/assets/assistant-interrupt/t9n/messages.sk.json +1 -1
  344. package/dist/cdn/assets/assistant-interrupt/t9n/messages.sl.json +1 -1
  345. package/dist/cdn/assets/assistant-interrupt/t9n/messages.sr.json +1 -1
  346. package/dist/cdn/assets/assistant-interrupt/t9n/messages.sv.json +1 -1
  347. package/dist/cdn/assets/assistant-interrupt/t9n/messages.th.json +1 -1
  348. package/dist/cdn/assets/assistant-interrupt/t9n/messages.tr.json +1 -1
  349. package/dist/cdn/assets/assistant-interrupt/t9n/messages.uk.json +1 -1
  350. package/dist/cdn/assets/assistant-interrupt/t9n/messages.vi.json +1 -1
  351. package/dist/cdn/assets/assistant-interrupt/t9n/messages.zh-CN.json +1 -1
  352. package/dist/cdn/assets/assistant-interrupt/t9n/messages.zh-HK.json +1 -1
  353. package/dist/cdn/assets/assistant-interrupt/t9n/messages.zh-TW.json +1 -1
  354. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.ar.json +1 -0
  355. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.bg.json +1 -0
  356. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.bs.json +1 -0
  357. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.ca.json +1 -0
  358. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.cs.json +1 -0
  359. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.da.json +1 -0
  360. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.de.json +1 -0
  361. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.el.json +1 -0
  362. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.es.json +1 -0
  363. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.et.json +1 -0
  364. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.fi.json +1 -0
  365. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.fr.json +1 -0
  366. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.he.json +1 -0
  367. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.hr.json +1 -0
  368. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.hu.json +1 -0
  369. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.id.json +1 -0
  370. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.it.json +1 -0
  371. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.ja.json +1 -0
  372. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.ko.json +1 -0
  373. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.lt.json +1 -0
  374. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.lv.json +1 -0
  375. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.nl.json +1 -0
  376. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.no.json +1 -0
  377. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.pl.json +1 -0
  378. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.pt-BR.json +1 -0
  379. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.pt-PT.json +1 -0
  380. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.ro.json +1 -0
  381. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.ru.json +1 -0
  382. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.sk.json +1 -0
  383. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.sl.json +1 -0
  384. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.sr.json +1 -0
  385. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.sv.json +1 -0
  386. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.th.json +1 -0
  387. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.tr.json +1 -0
  388. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.uk.json +1 -0
  389. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.vi.json +1 -0
  390. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.zh-CN.json +1 -0
  391. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.zh-HK.json +1 -0
  392. package/dist/cdn/assets/assistant-interrupt-preview/t9n/messages.zh-TW.json +1 -0
  393. package/dist/cdn/assets/assistant-message/t9n/messages.ar.json +1 -0
  394. package/dist/cdn/assets/assistant-message/t9n/messages.bg.json +1 -0
  395. package/dist/cdn/assets/assistant-message/t9n/messages.bs.json +1 -0
  396. package/dist/cdn/assets/assistant-message/t9n/messages.ca.json +1 -0
  397. package/dist/cdn/assets/assistant-message/t9n/messages.cs.json +1 -0
  398. package/dist/cdn/assets/assistant-message/t9n/messages.da.json +1 -0
  399. package/dist/cdn/assets/assistant-message/t9n/messages.de.json +1 -0
  400. package/dist/cdn/assets/assistant-message/t9n/messages.el.json +1 -0
  401. package/dist/cdn/assets/assistant-message/t9n/messages.es.json +1 -0
  402. package/dist/cdn/assets/assistant-message/t9n/messages.et.json +1 -0
  403. package/dist/cdn/assets/assistant-message/t9n/messages.fi.json +1 -0
  404. package/dist/cdn/assets/assistant-message/t9n/messages.fr.json +1 -0
  405. package/dist/cdn/assets/assistant-message/t9n/messages.he.json +1 -0
  406. package/dist/cdn/assets/assistant-message/t9n/messages.hr.json +1 -0
  407. package/dist/cdn/assets/assistant-message/t9n/messages.hu.json +1 -0
  408. package/dist/cdn/assets/assistant-message/t9n/messages.id.json +1 -0
  409. package/dist/cdn/assets/assistant-message/t9n/messages.it.json +1 -0
  410. package/dist/cdn/assets/assistant-message/t9n/messages.ja.json +1 -0
  411. package/dist/cdn/assets/assistant-message/t9n/messages.ko.json +1 -0
  412. package/dist/cdn/assets/assistant-message/t9n/messages.lt.json +1 -0
  413. package/dist/cdn/assets/assistant-message/t9n/messages.lv.json +1 -0
  414. package/dist/cdn/assets/assistant-message/t9n/messages.nl.json +1 -0
  415. package/dist/cdn/assets/assistant-message/t9n/messages.no.json +1 -0
  416. package/dist/cdn/assets/assistant-message/t9n/messages.pl.json +1 -0
  417. package/dist/cdn/assets/assistant-message/t9n/messages.pt-BR.json +1 -0
  418. package/dist/cdn/assets/assistant-message/t9n/messages.pt-PT.json +1 -0
  419. package/dist/cdn/assets/assistant-message/t9n/messages.ro.json +1 -0
  420. package/dist/cdn/assets/assistant-message/t9n/messages.ru.json +1 -0
  421. package/dist/cdn/assets/assistant-message/t9n/messages.sk.json +1 -0
  422. package/dist/cdn/assets/assistant-message/t9n/messages.sl.json +1 -0
  423. package/dist/cdn/assets/assistant-message/t9n/messages.sr.json +1 -0
  424. package/dist/cdn/assets/assistant-message/t9n/messages.sv.json +1 -0
  425. package/dist/cdn/assets/assistant-message/t9n/messages.th.json +1 -0
  426. package/dist/cdn/assets/assistant-message/t9n/messages.tr.json +1 -0
  427. package/dist/cdn/assets/assistant-message/t9n/messages.uk.json +1 -0
  428. package/dist/cdn/assets/assistant-message/t9n/messages.vi.json +1 -0
  429. package/dist/cdn/assets/assistant-message/t9n/messages.zh-CN.json +1 -0
  430. package/dist/cdn/assets/assistant-message/t9n/messages.zh-HK.json +1 -0
  431. package/dist/cdn/assets/assistant-message/t9n/messages.zh-TW.json +1 -0
  432. package/dist/cdn/assets/assistant-message-loading/t9n/messages.ar.json +1 -0
  433. package/dist/cdn/assets/assistant-message-loading/t9n/messages.bg.json +1 -0
  434. package/dist/cdn/assets/assistant-message-loading/t9n/messages.bs.json +1 -0
  435. package/dist/cdn/assets/assistant-message-loading/t9n/messages.ca.json +1 -0
  436. package/dist/cdn/assets/assistant-message-loading/t9n/messages.cs.json +1 -0
  437. package/dist/cdn/assets/assistant-message-loading/t9n/messages.da.json +1 -0
  438. package/dist/cdn/assets/assistant-message-loading/t9n/messages.de.json +1 -0
  439. package/dist/cdn/assets/assistant-message-loading/t9n/messages.el.json +1 -0
  440. package/dist/cdn/assets/assistant-message-loading/t9n/messages.es.json +1 -0
  441. package/dist/cdn/assets/assistant-message-loading/t9n/messages.et.json +1 -0
  442. package/dist/cdn/assets/assistant-message-loading/t9n/messages.fi.json +1 -0
  443. package/dist/cdn/assets/assistant-message-loading/t9n/messages.fr.json +1 -0
  444. package/dist/cdn/assets/assistant-message-loading/t9n/messages.he.json +1 -0
  445. package/dist/cdn/assets/assistant-message-loading/t9n/messages.hr.json +1 -0
  446. package/dist/cdn/assets/assistant-message-loading/t9n/messages.hu.json +1 -0
  447. package/dist/cdn/assets/assistant-message-loading/t9n/messages.id.json +1 -0
  448. package/dist/cdn/assets/assistant-message-loading/t9n/messages.it.json +1 -0
  449. package/dist/cdn/assets/assistant-message-loading/t9n/messages.ja.json +1 -0
  450. package/dist/cdn/assets/assistant-message-loading/t9n/messages.ko.json +1 -0
  451. package/dist/cdn/assets/assistant-message-loading/t9n/messages.lt.json +1 -0
  452. package/dist/cdn/assets/assistant-message-loading/t9n/messages.lv.json +1 -0
  453. package/dist/cdn/assets/assistant-message-loading/t9n/messages.nl.json +1 -0
  454. package/dist/cdn/assets/assistant-message-loading/t9n/messages.no.json +1 -0
  455. package/dist/cdn/assets/assistant-message-loading/t9n/messages.pl.json +1 -0
  456. package/dist/cdn/assets/assistant-message-loading/t9n/messages.pt-BR.json +1 -0
  457. package/dist/cdn/assets/assistant-message-loading/t9n/messages.pt-PT.json +1 -0
  458. package/dist/cdn/assets/assistant-message-loading/t9n/messages.ro.json +1 -0
  459. package/dist/cdn/assets/assistant-message-loading/t9n/messages.ru.json +1 -0
  460. package/dist/cdn/assets/assistant-message-loading/t9n/messages.sk.json +1 -0
  461. package/dist/cdn/assets/assistant-message-loading/t9n/messages.sl.json +1 -0
  462. package/dist/cdn/assets/assistant-message-loading/t9n/messages.sr.json +1 -0
  463. package/dist/cdn/assets/assistant-message-loading/t9n/messages.sv.json +1 -0
  464. package/dist/cdn/assets/assistant-message-loading/t9n/messages.th.json +1 -0
  465. package/dist/cdn/assets/assistant-message-loading/t9n/messages.tr.json +1 -0
  466. package/dist/cdn/assets/assistant-message-loading/t9n/messages.uk.json +1 -0
  467. package/dist/cdn/assets/assistant-message-loading/t9n/messages.vi.json +1 -0
  468. package/dist/cdn/assets/assistant-message-loading/t9n/messages.zh-CN.json +1 -0
  469. package/dist/cdn/assets/assistant-message-loading/t9n/messages.zh-HK.json +1 -0
  470. package/dist/cdn/assets/assistant-message-loading/t9n/messages.zh-TW.json +1 -0
  471. package/dist/cdn/assets/orchestrator/t9n/messages.ar.json +1 -0
  472. package/dist/cdn/assets/orchestrator/t9n/messages.bg.json +1 -0
  473. package/dist/cdn/assets/orchestrator/t9n/messages.ca.json +1 -0
  474. package/dist/cdn/assets/orchestrator/t9n/messages.cs.json +1 -0
  475. package/dist/cdn/assets/orchestrator/t9n/messages.da.json +1 -0
  476. package/dist/cdn/assets/orchestrator/t9n/messages.de.json +1 -0
  477. package/dist/cdn/assets/orchestrator/t9n/messages.el.json +1 -0
  478. package/dist/cdn/assets/orchestrator/t9n/messages.en.json +1 -0
  479. package/dist/cdn/assets/orchestrator/t9n/messages.es.json +1 -0
  480. package/dist/cdn/assets/orchestrator/t9n/messages.et.json +1 -0
  481. package/dist/cdn/assets/orchestrator/t9n/messages.fi.json +1 -0
  482. package/dist/cdn/assets/orchestrator/t9n/messages.fr.json +1 -0
  483. package/dist/cdn/assets/orchestrator/t9n/messages.he.json +1 -0
  484. package/dist/cdn/assets/orchestrator/t9n/messages.hr.json +1 -0
  485. package/dist/cdn/assets/orchestrator/t9n/messages.hu.json +1 -0
  486. package/dist/cdn/assets/orchestrator/t9n/messages.id.json +1 -0
  487. package/dist/cdn/assets/orchestrator/t9n/messages.it.json +1 -0
  488. package/dist/cdn/assets/orchestrator/t9n/messages.ja.json +1 -0
  489. package/dist/cdn/assets/orchestrator/t9n/messages.ko.json +1 -0
  490. package/dist/cdn/assets/orchestrator/t9n/messages.lt.json +1 -0
  491. package/dist/cdn/assets/orchestrator/t9n/messages.lv.json +1 -0
  492. package/dist/cdn/assets/orchestrator/t9n/messages.nl.json +1 -0
  493. package/dist/cdn/assets/orchestrator/t9n/messages.no.json +1 -0
  494. package/dist/cdn/assets/orchestrator/t9n/messages.pl.json +1 -0
  495. package/dist/cdn/assets/orchestrator/t9n/messages.pt-BR.json +1 -0
  496. package/dist/cdn/assets/orchestrator/t9n/messages.pt-PT.json +1 -0
  497. package/dist/cdn/assets/orchestrator/t9n/messages.ro.json +1 -0
  498. package/dist/cdn/assets/orchestrator/t9n/messages.ru.json +1 -0
  499. package/dist/cdn/assets/orchestrator/t9n/messages.sk.json +1 -0
  500. package/dist/cdn/assets/orchestrator/t9n/messages.sl.json +1 -0
  501. package/dist/cdn/assets/orchestrator/t9n/messages.sr.json +1 -0
  502. package/dist/cdn/assets/orchestrator/t9n/messages.sv.json +1 -0
  503. package/dist/cdn/assets/orchestrator/t9n/messages.th.json +1 -0
  504. package/dist/cdn/assets/orchestrator/t9n/messages.tr.json +1 -0
  505. package/dist/cdn/assets/orchestrator/t9n/messages.uk.json +1 -0
  506. package/dist/cdn/assets/orchestrator/t9n/messages.vi.json +1 -0
  507. package/dist/cdn/assets/orchestrator/t9n/messages.zh-CN.json +1 -0
  508. package/dist/cdn/assets/orchestrator/t9n/messages.zh-TW.json +1 -0
  509. package/dist/cdn/index.js +1 -1
  510. package/dist/cdn/main.css +1 -1
  511. package/dist/cdn/orchestrator/embeddings/getEmbeddings.js +2 -0
  512. package/dist/cdn/orchestrator/models/chatModel.js +2 -0
  513. package/dist/cdn/orchestrator/models/prompts.js +2 -0
  514. package/dist/cdn/orchestrator/signals.js +2 -0
  515. package/dist/cdn/orchestrator/state/runtime.js +2 -0
  516. package/dist/chunks/BaseWorkflow.js +52 -49
  517. package/dist/chunks/SKILL.js +5 -0
  518. package/dist/chunks/SKILL2.js +5 -0
  519. package/dist/chunks/SKILL3.js +22 -0
  520. package/dist/chunks/SKILL4.js +5 -0
  521. package/dist/chunks/adapter.js +20 -2156
  522. package/dist/chunks/adapter2.js +1129 -0
  523. package/dist/chunks/aiFactory.js +21 -0
  524. package/dist/chunks/aiUtilityService.js +29 -0
  525. package/dist/chunks/arcgisToolRegistry.js +92 -0
  526. package/dist/chunks/createSkillAgent.js +235 -0
  527. package/dist/chunks/fetchUtils.js +46 -0
  528. package/dist/chunks/getPrompt.js +32 -0
  529. package/dist/chunks/helpState.js +17 -0
  530. package/dist/chunks/intent_prompt.js +2 -0
  531. package/dist/chunks/layerQueryToolCalling.js +67 -0
  532. package/dist/chunks/layerStylingState.js +907 -0
  533. package/dist/chunks/localization.js +21 -0
  534. package/dist/chunks/modelConfig.js +12 -0
  535. package/dist/chunks/modelPricing.js +59 -0
  536. package/dist/chunks/navigationState.js +27 -0
  537. package/dist/chunks/observationSnapshot.js +110 -0
  538. package/dist/chunks/reducers.js +5 -0
  539. package/dist/chunks/requireAgentServices.js +11 -0
  540. package/dist/chunks/resolveGeometryFilter.js +149 -0
  541. package/dist/chunks/{baseAgentState.js → runtime2.js} +7 -6
  542. package/dist/chunks/runtimeSpans.js +103 -0
  543. package/dist/chunks/schema.js +45 -0
  544. package/dist/chunks/state.js +34 -23
  545. package/dist/chunks/textFormatters.js +8 -0
  546. package/dist/chunks/toolCallResponse.js +10 -23
  547. package/dist/chunks/utils.js +2 -2
  548. package/dist/chunks/utils2.js +15 -39
  549. package/dist/chunks/utils3.js +41 -10
  550. package/dist/chunks/webmapSchema.js +56 -0
  551. package/dist/components/arcgis-assistant/customElement.d.ts +54 -6
  552. package/dist/components/arcgis-assistant/customElement.js +268 -235
  553. package/dist/components/arcgis-assistant/types.d.ts +109 -1
  554. package/dist/components/arcgis-assistant-agent/customElement.d.ts +2 -2
  555. package/dist/components/arcgis-assistant-agent/customElement.js +330 -331
  556. package/dist/components/arcgis-assistant-chat-entry/customElement.d.ts +15 -4
  557. package/dist/components/arcgis-assistant-chat-entry/customElement.js +344 -45
  558. package/dist/components/arcgis-assistant-chat-entry/index.js +3 -0
  559. package/dist/components/arcgis-assistant-data-exploration-agent/customElement.js +24 -19
  560. package/dist/components/arcgis-assistant-help-agent/customElement.js +14 -18
  561. package/dist/components/arcgis-assistant-interrupt/customElement.d.ts +4 -2
  562. package/dist/components/arcgis-assistant-interrupt/customElement.js +49 -15
  563. package/dist/components/arcgis-assistant-interrupt/index.js +1 -1
  564. package/dist/components/arcgis-assistant-knowledge-agent/customElement.d.ts +1 -1
  565. package/dist/components/arcgis-assistant-knowledge-agent/customElement.js +19 -25
  566. package/dist/components/arcgis-assistant-layer-styling-agent/customElement.js +13 -19
  567. package/dist/components/arcgis-assistant-message-block/customElement.d.ts +1 -1
  568. package/dist/components/arcgis-assistant-message-log/customElement.js +4 -4
  569. package/dist/components/arcgis-assistant-message-text/customElement.js +1 -1
  570. package/dist/components/arcgis-assistant-navigation-agent/customElement.js +24 -19
  571. package/dist/components/arcgis-assistant-observation-inspector/customElement.d.ts +18 -0
  572. package/dist/components/arcgis-assistant-observation-inspector/customElement.js +90 -0
  573. package/dist/components/arcgis-assistant-observation-inspector/index.d.ts +1 -0
  574. package/dist/components/arcgis-assistant-observation-inspector/index.js +14 -0
  575. package/dist/components/arcgis-assistant-observation-latency/customElement.d.ts +15 -0
  576. package/dist/components/arcgis-assistant-observation-latency/customElement.js +65 -0
  577. package/dist/components/arcgis-assistant-observation-latency/index.d.ts +1 -0
  578. package/dist/components/arcgis-assistant-observation-latency/index.js +5 -0
  579. package/dist/components/arcgis-assistant-observation-panel/customElement.d.ts +28 -0
  580. package/dist/components/arcgis-assistant-observation-panel/customElement.js +68 -0
  581. package/dist/components/arcgis-assistant-observation-panel/index.d.ts +1 -0
  582. package/dist/components/arcgis-assistant-observation-panel/index.js +7 -0
  583. package/dist/components/arcgis-assistant-observation-panel/support/modelPricing.d.ts +34 -0
  584. package/dist/components/arcgis-assistant-observation-panel/support/observationSnapshot.d.ts +63 -0
  585. package/dist/components/arcgis-assistant-observation-panel/support/runtimeSpans.d.ts +36 -0
  586. package/dist/components/arcgis-assistant-observation-run/customElement.d.ts +21 -0
  587. package/dist/components/arcgis-assistant-observation-run/customElement.js +43 -0
  588. package/dist/components/arcgis-assistant-observation-run/index.d.ts +1 -0
  589. package/dist/components/arcgis-assistant-observation-run/index.js +7 -0
  590. package/dist/components/arcgis-assistant-observation-usage/customElement.d.ts +22 -0
  591. package/dist/components/arcgis-assistant-observation-usage/customElement.js +82 -0
  592. package/dist/components/arcgis-assistant-observation-usage/index.d.ts +1 -0
  593. package/dist/components/arcgis-assistant-observation-usage/index.js +5 -0
  594. package/dist/components/assistant/assistant-agents/types.d.ts +19 -0
  595. package/dist/docs/api.json +1 -1
  596. package/dist/docs/docs.json +1 -1
  597. package/dist/docs/vscode.html-custom-data.json +1 -1
  598. package/dist/docs/web-types.json +1 -1
  599. package/dist/index.d.ts +20 -0
  600. package/dist/loader.js +11 -6
  601. package/dist/orchestrator/embeddings/cosineSimilarity.d.ts +12 -0
  602. package/dist/orchestrator/embeddings/cosineSimilarity.js +18 -0
  603. package/dist/orchestrator/embeddings/getEmbeddings.d.ts +7 -0
  604. package/dist/orchestrator/embeddings/getEmbeddings.js +12 -0
  605. package/dist/orchestrator/embeddings/webmapEmbeddings.d.ts +15 -0
  606. package/dist/orchestrator/embeddings/webmapEmbeddings.js +141 -0
  607. package/dist/orchestrator/embeddings/webmapSchema.d.ts +50 -0
  608. package/dist/orchestrator/models/chatModel.d.ts +22 -0
  609. package/dist/orchestrator/models/chatModel.js +19 -0
  610. package/dist/orchestrator/models/modelConfig.d.ts +2 -0
  611. package/dist/orchestrator/models/prompts.d.ts +105 -0
  612. package/dist/orchestrator/models/prompts.js +46 -0
  613. package/dist/orchestrator/orchestrator/orchestrator.d.ts +75 -0
  614. package/dist/orchestrator/orchestrator/orchestrator.js +977 -0
  615. package/dist/orchestrator/orchestrator/orchestratorEvents.d.ts +127 -33
  616. package/dist/orchestrator/orchestrator/orchestratorEvents.js +2 -0
  617. package/dist/orchestrator/providers/arcgis/aiFactory.d.ts +17 -0
  618. package/dist/orchestrator/registry/agentRegistry.d.ts +10 -0
  619. package/dist/orchestrator/services/fieldSearch.d.ts +17 -0
  620. package/dist/orchestrator/services/layerSearch.d.ts +18 -0
  621. package/dist/orchestrator/signals.d.ts +66 -0
  622. package/dist/orchestrator/signals.js +12 -0
  623. package/dist/orchestrator/state/runtime.d.ts +31 -0
  624. package/dist/orchestrator/state/runtime.js +8 -0
  625. package/dist/orchestrator/state/types.d.ts +67 -0
  626. package/dist/orchestrator/state/types.js +2 -0
  627. package/dist/orchestrator/types.d.ts +305 -0
  628. package/dist/orchestrator/types.js +2 -0
  629. package/dist/types/lumina.d.ts +27 -2
  630. package/dist/types/preact.d.ts +32 -2
  631. package/dist/types/react.d.ts +37 -2
  632. package/dist/types/stencil.d.ts +27 -2
  633. package/dist/utils/index.d.ts +167 -37
  634. package/dist/utils/index.js +40 -113
  635. package/package.json +36 -13
  636. package/dist/agent-utils/index.d.ts +0 -177
  637. package/dist/agent-utils/index.js +0 -167
  638. package/dist/agentic-workflow/AgenticWorkflowRuntime.d.ts +0 -24
  639. package/dist/agentic-workflow/Edge.d.ts +0 -16
  640. package/dist/agentic-workflow/WebAgent.d.ts +0 -39
  641. package/dist/agentic-workflow/nodes/AgentNode.d.ts +0 -28
  642. package/dist/agentic-workflow/nodes/BaseNode.d.ts +0 -35
  643. package/dist/agentic-workflow/nodes/EndMessageNode.d.ts +0 -25
  644. package/dist/agentic-workflow/nodes/StartNode.d.ts +0 -21
  645. package/dist/agentic-workflow/nodes/tools/ArcgisTool.d.ts +0 -21
  646. package/dist/agentic-workflow/types.d.ts +0 -29
  647. package/dist/cdn/2EY3BQQX.js +0 -2
  648. package/dist/cdn/2O4DON37.js +0 -2
  649. package/dist/cdn/3UEKINYC.js +0 -2
  650. package/dist/cdn/4OGR5QKS.js +0 -2
  651. package/dist/cdn/4WIDLQUH.js +0 -2
  652. package/dist/cdn/5FL5BTTX.js +0 -66
  653. package/dist/cdn/5X7EG7D2.js +0 -2
  654. package/dist/cdn/5ZFUGNRN.js +0 -2
  655. package/dist/cdn/6HF36IKA.js +0 -2
  656. package/dist/cdn/6KN5LUAV.js +0 -36
  657. package/dist/cdn/6OOZSZRJ.js +0 -2
  658. package/dist/cdn/6P44KOKX.js +0 -2
  659. package/dist/cdn/6YYPVU7H.js +0 -3
  660. package/dist/cdn/7BCQMK6D.js +0 -2
  661. package/dist/cdn/7V6OSTFC.js +0 -2
  662. package/dist/cdn/7VAQUCBU.js +0 -9
  663. package/dist/cdn/7VUSIGEM.js +0 -2
  664. package/dist/cdn/7ZFAFKJT.js +0 -2
  665. package/dist/cdn/AA4FBYKK.js +0 -2
  666. package/dist/cdn/ACJTJLZN.js +0 -2
  667. package/dist/cdn/AI6DYOKR.js +0 -181
  668. package/dist/cdn/ANRQWYU2.js +0 -2
  669. package/dist/cdn/APFZY4PI.js +0 -2
  670. package/dist/cdn/ASR3I43T.js +0 -14
  671. package/dist/cdn/B2JDVLA6.js +0 -2
  672. package/dist/cdn/B2T7D57Y.js +0 -2
  673. package/dist/cdn/CCC6LBMY.js +0 -2
  674. package/dist/cdn/CJMUJXPL.js +0 -2
  675. package/dist/cdn/CP5BVGJU.js +0 -2
  676. package/dist/cdn/CZM4URK7.js +0 -2
  677. package/dist/cdn/D5UFYQHN.js +0 -44
  678. package/dist/cdn/EKWM5K4K.js +0 -2
  679. package/dist/cdn/EWLXNGKH.js +0 -208
  680. package/dist/cdn/EYOWRGDP.js +0 -2
  681. package/dist/cdn/F5NIRETW.js +0 -2
  682. package/dist/cdn/FG647IP6.js +0 -2
  683. package/dist/cdn/FUF3NAU7.js +0 -2
  684. package/dist/cdn/G2EGT3CF.js +0 -6
  685. package/dist/cdn/G7OMHU2B.js +0 -2
  686. package/dist/cdn/GFEOVHJK.js +0 -2
  687. package/dist/cdn/HAEFC2SJ.js +0 -2
  688. package/dist/cdn/HDACNIZF.js +0 -2
  689. package/dist/cdn/HNADFHYH.js +0 -2
  690. package/dist/cdn/IBZ2NEAO.js +0 -2
  691. package/dist/cdn/IC3LG6TH.js +0 -18
  692. package/dist/cdn/J6SZIQJA.js +0 -2
  693. package/dist/cdn/JCOA24UH.js +0 -3
  694. package/dist/cdn/JKIESH74.js +0 -2
  695. package/dist/cdn/JO5ETMPS.js +0 -2
  696. package/dist/cdn/LNCT4S4I.js +0 -22
  697. package/dist/cdn/MX7OEO5Z.js +0 -156
  698. package/dist/cdn/MXTXJKFE.js +0 -2
  699. package/dist/cdn/MY47B3CE.js +0 -3
  700. package/dist/cdn/NEZXHUAL.js +0 -2
  701. package/dist/cdn/NSHLOFIY.js +0 -2
  702. package/dist/cdn/NZSOJ726.js +0 -2
  703. package/dist/cdn/O4NVW75A.js +0 -2
  704. package/dist/cdn/OAKRPM7D.js +0 -2
  705. package/dist/cdn/OE3GW5LE.js +0 -2
  706. package/dist/cdn/PUHRBGKB.js +0 -2
  707. package/dist/cdn/Q57QWN5W.js +0 -2
  708. package/dist/cdn/QNNGPA3Q.js +0 -2
  709. package/dist/cdn/R2PQVY4O.js +0 -2
  710. package/dist/cdn/RBE55SWR.js +0 -2
  711. package/dist/cdn/RHYNE5OE.js +0 -2
  712. package/dist/cdn/RLEHNAIA.js +0 -2
  713. package/dist/cdn/SXM4NUT5.js +0 -2
  714. package/dist/cdn/SZ2QSSB3.js +0 -2
  715. package/dist/cdn/T4RIGOXB.js +0 -2
  716. package/dist/cdn/U2D53TAX.js +0 -14
  717. package/dist/cdn/UAANWCMU.js +0 -44
  718. package/dist/cdn/UDRKUVZP.js +0 -2
  719. package/dist/cdn/UHZG7SKO.js +0 -2
  720. package/dist/cdn/V52XWEGV.js +0 -11
  721. package/dist/cdn/V6HOUZPZ.js +0 -2
  722. package/dist/cdn/VLLZ2FFU.js +0 -2
  723. package/dist/cdn/WGO5SER7.js +0 -6
  724. package/dist/cdn/WJXXOKGA.js +0 -9
  725. package/dist/cdn/WKTQVBFJ.js +0 -2
  726. package/dist/cdn/WSWB3B7B.js +0 -2
  727. package/dist/cdn/Y7XD7ZRD.js +0 -2
  728. package/dist/cdn/YLVJA4ZE.js +0 -2
  729. package/dist/cdn/YWN57GH4.js +0 -2
  730. package/dist/cdn/ZDV4K4WG.js +0 -2
  731. package/dist/cdn/ZOEMBHRF.js +0 -2
  732. package/dist/cdn/agent-utils/index.js +0 -2
  733. package/dist/chunks/generateLayerDescriptions.js +0 -417
  734. package/dist/chunks/index.js +0 -11
  735. package/dist/chunks/orchestrator.js +0 -778
  736. package/dist/chunks/types.js +0 -59
@@ -0,0 +1,150 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import{a as Pe,c as Sn}from"./UZLQALHY.js";var cs=Pe((Mm,Vr)=>{"use strict";var pl=Object.prototype.hasOwnProperty,K="~";function Qe(){}Object.create&&(Qe.prototype=Object.create(null),new Qe().__proto__||(K=!1));function ml(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function os(t,e,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var a=new ml(r,n||t,i),s=K?K+e:e;return t._events[s]?t._events[s].fn?t._events[s]=[t._events[s],a]:t._events[s].push(a):(t._events[s]=a,t._eventsCount++),t}function kt(t,e){--t._eventsCount===0?t._events=new Qe:delete t._events[e]}function G(){this._events=new Qe,this._eventsCount=0}G.prototype.eventNames=function(){var e=[],r,n;if(this._eventsCount===0)return e;for(n in r=this._events)pl.call(r,n)&&e.push(K?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(r)):e};G.prototype.listeners=function(e){var r=K?K+e:e,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,a=n.length,s=new Array(a);i<a;i++)s[i]=n[i].fn;return s};G.prototype.listenerCount=function(e){var r=K?K+e:e,n=this._events[r];return n?n.fn?1:n.length:0};G.prototype.emit=function(e,r,n,i,a,s){var o=K?K+e:e;if(!this._events[o])return!1;var c=this._events[o],u=arguments.length,l,d;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,r),!0;case 3:return c.fn.call(c.context,r,n),!0;case 4:return c.fn.call(c.context,r,n,i),!0;case 5:return c.fn.call(c.context,r,n,i,a),!0;case 6:return c.fn.call(c.context,r,n,i,a,s),!0}for(d=1,l=new Array(u-1);d<u;d++)l[d-1]=arguments[d];c.fn.apply(c.context,l)}else{var f=c.length,h;for(d=0;d<f;d++)switch(c[d].once&&this.removeListener(e,c[d].fn,void 0,!0),u){case 1:c[d].fn.call(c[d].context);break;case 2:c[d].fn.call(c[d].context,r);break;case 3:c[d].fn.call(c[d].context,r,n);break;case 4:c[d].fn.call(c[d].context,r,n,i);break;default:if(!l)for(h=1,l=new Array(u-1);h<u;h++)l[h-1]=arguments[h];c[d].fn.apply(c[d].context,l)}}return!0};G.prototype.on=function(e,r,n){return os(this,e,r,n,!1)};G.prototype.once=function(e,r,n){return os(this,e,r,n,!0)};G.prototype.removeListener=function(e,r,n,i){var a=K?K+e:e;if(!this._events[a])return this;if(!r)return kt(this,a),this;var s=this._events[a];if(s.fn)s.fn===r&&(!i||s.once)&&(!n||s.context===n)&&kt(this,a);else{for(var o=0,c=[],u=s.length;o<u;o++)(s[o].fn!==r||i&&!s[o].once||n&&s[o].context!==n)&&c.push(s[o]);c.length?this._events[a]=c.length===1?c[0]:c:kt(this,a)}return this};G.prototype.removeAllListeners=function(e){var r;return e?(r=K?K+e:e,this._events[r]&&kt(this,r)):(this._events=new Qe,this._eventsCount=0),this};G.prototype.off=G.prototype.removeListener;G.prototype.addListener=G.prototype.on;G.prefixed=K;G.EventEmitter=G;typeof Vr<"u"&&(Vr.exports=G)});var us=Pe((Nm,ls)=>{"use strict";ls.exports=(t,e)=>(e=e||(()=>{}),t.then(r=>new Promise(n=>{n(e())}).then(()=>r),r=>new Promise(n=>{n(e())}).then(()=>{throw r})))});var fs=Pe((Pm,$t)=>{"use strict";var _l=us(),Lt=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},ds=(t,e,r)=>new Promise((n,i)=>{if(typeof e!="number"||e<0)throw new TypeError("Expected `milliseconds` to be a positive number");if(e===1/0){n(t);return}let a=setTimeout(()=>{if(typeof r=="function"){try{n(r())}catch(c){i(c)}return}let s=typeof r=="string"?r:`Promise timed out after ${e} milliseconds`,o=r instanceof Error?r:new Lt(s);typeof t.cancel=="function"&&t.cancel(),i(o)},e);_l(t.then(n,i),()=>{clearTimeout(a)})});$t.exports=ds;$t.exports.default=ds;$t.exports.TimeoutError=Lt});var hs=Pe(qr=>{"use strict";Object.defineProperty(qr,"__esModule",{value:!0});function gl(t,e,r){let n=0,i=t.length;for(;i>0;){let a=i/2|0,s=n+a;r(t[s],e)<=0?(n=++s,i-=a+1):i=a}return n}qr.default=gl});var ps=Pe(Jr=>{"use strict";Object.defineProperty(Jr,"__esModule",{value:!0});var yl=hs(),Kr=class{constructor(){this._queue=[]}enqueue(e,r){r=Object.assign({priority:0},r);let n={priority:r.priority,run:e};if(this.size&&this._queue[this.size-1].priority>=r.priority){this._queue.push(n);return}let i=yl.default(this._queue,n,(a,s)=>s.priority-a.priority);this._queue.splice(i,0,n)}dequeue(){let e=this._queue.shift();return e?.run}filter(e){return this._queue.filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return this._queue.length}};Jr.default=Kr});var Qr=Pe(Xr=>{"use strict";Object.defineProperty(Xr,"__esModule",{value:!0});var wl=cs(),ms=fs(),bl=ps(),Ut=()=>{},El=new ms.TimeoutError,Wr=class extends wl{constructor(e){var r,n,i,a;if(super(),this._intervalCount=0,this._intervalEnd=0,this._pendingCount=0,this._resolveEmpty=Ut,this._resolveIdle=Ut,e=Object.assign({carryoverConcurrencyCount:!1,intervalCap:1/0,interval:0,concurrency:1/0,autoStart:!0,queueClass:bl.default},e),!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(r=e.intervalCap)===null||r===void 0?void 0:r.toString())!==null&&n!==void 0?n:""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(a=(i=e.interval)===null||i===void 0?void 0:i.toString())!==null&&a!==void 0?a:""}\` (${typeof e.interval})`);this._carryoverConcurrencyCount=e.carryoverConcurrencyCount,this._isIntervalIgnored=e.intervalCap===1/0||e.interval===0,this._intervalCap=e.intervalCap,this._interval=e.interval,this._queue=new e.queueClass,this._queueClass=e.queueClass,this.concurrency=e.concurrency,this._timeout=e.timeout,this._throwOnTimeout=e.throwOnTimeout===!0,this._isPaused=e.autoStart===!1}get _doesIntervalAllowAnother(){return this._isIntervalIgnored||this._intervalCount<this._intervalCap}get _doesConcurrentAllowAnother(){return this._pendingCount<this._concurrency}_next(){this._pendingCount--,this._tryToStartAnother(),this.emit("next")}_resolvePromises(){this._resolveEmpty(),this._resolveEmpty=Ut,this._pendingCount===0&&(this._resolveIdle(),this._resolveIdle=Ut,this.emit("idle"))}_onResumeInterval(){this._onInterval(),this._initializeIntervalIfNeeded(),this._timeoutId=void 0}_isIntervalPaused(){let e=Date.now();if(this._intervalId===void 0){let r=this._intervalEnd-e;if(r<0)this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0;else return this._timeoutId===void 0&&(this._timeoutId=setTimeout(()=>{this._onResumeInterval()},r)),!0}return!1}_tryToStartAnother(){if(this._queue.size===0)return this._intervalId&&clearInterval(this._intervalId),this._intervalId=void 0,this._resolvePromises(),!1;if(!this._isPaused){let e=!this._isIntervalPaused();if(this._doesIntervalAllowAnother&&this._doesConcurrentAllowAnother){let r=this._queue.dequeue();return r?(this.emit("active"),r(),e&&this._initializeIntervalIfNeeded(),!0):!1}}return!1}_initializeIntervalIfNeeded(){this._isIntervalIgnored||this._intervalId!==void 0||(this._intervalId=setInterval(()=>{this._onInterval()},this._interval),this._intervalEnd=Date.now()+this._interval)}_onInterval(){this._intervalCount===0&&this._pendingCount===0&&this._intervalId&&(clearInterval(this._intervalId),this._intervalId=void 0),this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0,this._processQueue()}_processQueue(){for(;this._tryToStartAnother(););}get concurrency(){return this._concurrency}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this._concurrency=e,this._processQueue()}async add(e,r={}){return new Promise((n,i)=>{let a=async()=>{this._pendingCount++,this._intervalCount++;try{let s=this._timeout===void 0&&r.timeout===void 0?e():ms.default(Promise.resolve(e()),r.timeout===void 0?this._timeout:r.timeout,()=>{(r.throwOnTimeout===void 0?this._throwOnTimeout:r.throwOnTimeout)&&i(El)});n(await s)}catch(s){i(s)}this._next()};this._queue.enqueue(a,r),this._tryToStartAnother(),this.emit("add")})}async addAll(e,r){return Promise.all(e.map(async n=>this.add(n,r)))}start(){return this._isPaused?(this._isPaused=!1,this._processQueue(),this):this}pause(){this._isPaused=!0}clear(){this._queue=new this._queueClass}async onEmpty(){if(this._queue.size!==0)return new Promise(e=>{let r=this._resolveEmpty;this._resolveEmpty=()=>{r(),e()}})}async onIdle(){if(!(this._pendingCount===0&&this._queue.size===0))return new Promise(e=>{let r=this._resolveIdle;this._resolveIdle=()=>{r(),e()}})}get size(){return this._queue.size}sizeBy(e){return this._queue.filter(e).length}get pending(){return this._pendingCount}get isPaused(){return this._isPaused}get timeout(){return this._timeout}set timeout(e){this._timeout=e}};Xr.default=Wr});var xn=Object.defineProperty,P=(t,e)=>{let r={};for(var n in t)xn(r,n,{get:t[n],enumerable:!0});return e||xn(r,Symbol.toStringTag,{value:"Module"}),r};var no=/([A-Z]+)([A-Z][a-z0-9]+)/g,io=/([a-z0-9])([A-Z])/g,Tn=/[-_\s]+/g;function ao(t){return t.replace(no,"$1_$2").replace(io,"$1_$2").replace(Tn,"_").toLowerCase()}function so(t){let e=t.trim();return/[-_\s]/.test(e)?e.replace(Tn,"_").toLowerCase().replace(/_+([a-z0-9])/g,(r,n)=>n.toUpperCase()):e}function An(t,e){return e?.[t]||ao(t)}function xu(t,e){return e?.[t]||so(t)}function In(t,e,r){let n={};for(let i in t)Object.hasOwn(t,i)&&(n[e(i,r)]=t[i]);return n}var On="__lc_escaped__";function oo(t){return"lc"in t||Object.keys(t).length===1&&"__lc_escaped__"in t}function co(t){return{[On]:t}}function lo(t){return Object.keys(t).length===1&&"__lc_escaped__"in t}function uo(t){return t!==null&&typeof t=="object"&&"lc_serializable"in t&&typeof t.toJSON=="function"}function fo(t){let e;return t!==null&&typeof t=="object"?"lc_id"in t&&Array.isArray(t.lc_id)?e=t.lc_id:e=[t.constructor?.name??"Object"]:e=[typeof t],{lc:1,type:"not_implemented",id:e}}function it(t,e=new WeakSet){if(t!==null&&typeof t=="object"&&!Array.isArray(t)){if(e.has(t))return fo(t);if(uo(t))return t;e.add(t);let r=t;if(oo(r))return e.delete(t),co(r);let n={};for(let[i,a]of Object.entries(r))n[i]=it(a,e);return e.delete(t),n}return Array.isArray(t)?t.map(r=>it(r,e)):t}function Cn(t){if(t!==null&&typeof t=="object"&&!Array.isArray(t)){let e=t;if(lo(e))return e[On];let r={};for(let[n,i]of Object.entries(e))r[n]=Cn(i);return r}return Array.isArray(t)?t.map(e=>Cn(e)):t}var Ru=P({Serializable:()=>ke,get_lc_unique_name:()=>at});function Rn(t){return Array.isArray(t)?[...t]:{...t}}function ho(t,e){let r=Rn(t);for(let[n,i]of Object.entries(e)){let[a,...s]=n.split(".").reverse(),o=r;for(let c of s.reverse()){if(o[c]===void 0)break;o[c]=Rn(o[c]),o=o[c]}o[a]!==void 0&&(o[a]={lc:1,type:"secret",id:[i]})}return r}function at(t){let e=Object.getPrototypeOf(t);return typeof t.lc_name=="function"&&(typeof e.lc_name!="function"||t.lc_name()!==e.lc_name())?t.lc_name():t.name}var ke=class Mn{lc_serializable=!1;lc_kwargs;static lc_name(){return this.name}get lc_id(){return[...this.lc_namespace,at(this.constructor)]}get lc_secrets(){}get lc_attributes(){}get lc_aliases(){}get lc_serializable_keys(){}constructor(e,...r){this.lc_serializable_keys!==void 0?this.lc_kwargs=Object.fromEntries(Object.entries(e||{}).filter(([n])=>this.lc_serializable_keys?.includes(n))):this.lc_kwargs=e??{}}toJSON(){if(!this.lc_serializable)return this.toJSONNotImplemented();if(this.lc_kwargs instanceof Mn||typeof this.lc_kwargs!="object"||Array.isArray(this.lc_kwargs))return this.toJSONNotImplemented();let e={},r={},n=Object.keys(this.lc_kwargs).reduce((o,c)=>(o[c]=c in this?this[c]:this.lc_kwargs[c],o),{});for(let o=Object.getPrototypeOf(this);o;o=Object.getPrototypeOf(o))Object.assign(e,Reflect.get(o,"lc_aliases",this)),Object.assign(r,Reflect.get(o,"lc_secrets",this)),Object.assign(n,Reflect.get(o,"lc_attributes",this));Object.keys(r).forEach(o=>{let c=this,u=n,[l,...d]=o.split(".").reverse();for(let f of d.reverse()){if(!(f in c)||c[f]===void 0)return;(!(f in u)||u[f]===void 0)&&(typeof c[f]=="object"&&c[f]!=null?u[f]={}:Array.isArray(c[f])&&(u[f]=[])),c=c[f],u=u[f]}l in c&&c[l]!==void 0&&(u[l]=u[l]||c[l])});let i={},a=new WeakSet;a.add(this);for(let[o,c]of Object.entries(n))i[o]=it(c,a);let s=In(Object.keys(r).length?ho(i,r):i,An,e);return{lc:1,type:"constructor",id:this.lc_id,kwargs:s}}toJSONNotImplemented(){return{lc:1,type:"not_implemented",id:this.lc_id}}};function pe(t){return typeof t=="object"&&t!==null&&"type"in t&&typeof t.type=="string"&&"source_type"in t&&(t.source_type==="url"||t.source_type==="base64"||t.source_type==="text"||t.source_type==="id")}function Nn(t){return pe(t)&&t.source_type==="url"&&"url"in t&&typeof t.url=="string"}function Pn(t){return pe(t)&&t.source_type==="base64"&&"data"in t&&typeof t.data=="string"}function Nu(t){return pe(t)&&t.source_type==="text"&&"text"in t&&typeof t.text=="string"}function kn(t){return pe(t)&&t.source_type==="id"&&"id"in t&&typeof t.id=="string"}function Pu(t){if(pe(t)){if(t.source_type==="url")return{type:"image_url",image_url:{url:t.url}};if(t.source_type==="base64"){if(!t.mime_type)throw new Error("mime_type key is required for base64 data.");return{type:"image_url",image_url:{url:`data:${t.mime_type};base64,${t.data}`}}}}throw new Error("Unsupported source type. Only 'url' and 'base64' are supported.")}function ku(t){let e=t.split(";")[0].split("/");if(e.length!==2)throw new Error(`Invalid mime type: "${t}" - does not match type/subtype format.`);let r=e[0].trim(),n=e[1].trim();if(r===""||n==="")throw new Error(`Invalid mime type: "${t}" - type or subtype is empty.`);let i={};for(let a of t.split(";").slice(1)){let s=a.split("=");if(s.length!==2)throw new Error(`Invalid parameter syntax in mime type: "${t}".`);let o=s[0].trim(),c=s[1].trim();if(o==="")throw new Error(`Invalid parameter syntax in mime type: "${t}".`);i[o]=c}return{type:r,subtype:n,parameters:i}}function Yt({dataUrl:t,asTypedArray:e=!1}){let r=t.match(/^data:(\w+\/\w+);base64,([A-Za-z0-9+/]+=*)$/),n;if(r){n=r[1].toLowerCase();let i=e?Uint8Array.from(atob(r[2]),a=>a.charCodeAt(0)):r[2];return{mime_type:n,data:i}}}function Lu(t,e){if(t.type==="text"){if(!e.fromStandardTextBlock)throw new Error(`Converter for ${e.providerName} does not implement \`fromStandardTextBlock\` method.`);return e.fromStandardTextBlock(t)}if(t.type==="image"){if(!e.fromStandardImageBlock)throw new Error(`Converter for ${e.providerName} does not implement \`fromStandardImageBlock\` method.`);return e.fromStandardImageBlock(t)}if(t.type==="audio"){if(!e.fromStandardAudioBlock)throw new Error(`Converter for ${e.providerName} does not implement \`fromStandardAudioBlock\` method.`);return e.fromStandardAudioBlock(t)}if(t.type==="file"){if(!e.fromStandardFileBlock)throw new Error(`Converter for ${e.providerName} does not implement \`fromStandardFileBlock\` method.`);return e.fromStandardFileBlock(t)}throw new Error(`Unable to convert content block type '${t.type}' to provider-specific format: not recognized.`)}function g(t,e){return b(t)&&t.type===e}function b(t){return typeof t=="object"&&t!==null}function U(t){return Array.isArray(t)}function p(t){return typeof t=="string"}function Y(t){return typeof t=="number"}function st(t){return t instanceof Uint8Array}function Zt(t){try{return JSON.parse(t)}catch{return}}var Z=t=>t();function po(t){if(t.type==="char_location"&&p(t.document_title)&&Y(t.start_char_index)&&Y(t.end_char_index)&&p(t.cited_text)){let{document_title:e,start_char_index:r,end_char_index:n,cited_text:i,...a}=t;return{...a,type:"citation",source:"char",title:e??void 0,startIndex:r,endIndex:n,citedText:i}}if(t.type==="page_location"&&p(t.document_title)&&Y(t.start_page_number)&&Y(t.end_page_number)&&p(t.cited_text)){let{document_title:e,start_page_number:r,end_page_number:n,cited_text:i,...a}=t;return{...a,type:"citation",source:"page",title:e??void 0,startIndex:r,endIndex:n,citedText:i}}if(t.type==="content_block_location"&&p(t.document_title)&&Y(t.start_block_index)&&Y(t.end_block_index)&&p(t.cited_text)){let{document_title:e,start_block_index:r,end_block_index:n,cited_text:i,...a}=t;return{...a,type:"citation",source:"block",title:e??void 0,startIndex:r,endIndex:n,citedText:i}}if(t.type==="web_search_result_location"&&p(t.url)&&p(t.title)&&p(t.encrypted_index)&&p(t.cited_text)){let{url:e,title:r,encrypted_index:n,cited_text:i,...a}=t;return{...a,type:"citation",source:"url",url:e,title:r,startIndex:Number(n),endIndex:Number(n),citedText:i}}if(t.type==="search_result_location"&&p(t.source)&&p(t.title)&&Y(t.start_block_index)&&Y(t.end_block_index)&&p(t.cited_text)){let{source:e,title:r,start_block_index:n,end_block_index:i,cited_text:a,...s}=t;return{...s,type:"citation",source:"search",url:e,title:r??void 0,startIndex:n,endIndex:i,citedText:a}}}function $n(t){if(g(t,"document")&&b(t.source)&&"type"in t.source){if(t.source.type==="base64"&&p(t.source.media_type)&&p(t.source.data))return{type:"file",mimeType:t.source.media_type,data:t.source.data};if(t.source.type==="url"&&p(t.source.url))return{type:"file",url:t.source.url};if(t.source.type==="file"&&p(t.source.file_id))return{type:"file",fileId:t.source.file_id};if(t.source.type==="text"&&p(t.source.data))return{type:"file",mimeType:String(t.source.media_type??"text/plain"),data:t.source.data}}else if(g(t,"image")&&b(t.source)&&"type"in t.source){if(t.source.type==="base64"&&p(t.source.media_type)&&p(t.source.data))return{type:"image",mimeType:t.source.media_type,data:t.source.data};if(t.source.type==="url"&&p(t.source.url))return{type:"image",url:t.source.url};if(t.source.type==="file"&&p(t.source.file_id))return{type:"image",fileId:t.source.file_id}}}function Un(t){function*e(){for(let r of t){let n=$n(r);n?yield n:yield r}}return Array.from(e())}function Ln(t){function*e(){let r=typeof t.content=="string"?[{type:"text",text:t.content}]:t.content;for(let n of r){if(g(n,"text")&&p(n.text)){let{text:i,citations:a,...s}=n;if(U(a)&&a.length){let o=a.reduce((c,u)=>{let l=po(u);return l?[...c,l]:c},[]);yield{...s,type:"text",text:i,annotations:o};continue}else{yield{...s,type:"text",text:i};continue}}else if(g(n,"thinking")&&p(n.thinking)){let{thinking:i,signature:a,...s}=n;yield{...s,type:"reasoning",reasoning:i,signature:a};continue}else if(g(n,"redacted_thinking")){yield{type:"non_standard",value:n};continue}else if(g(n,"tool_use")&&p(n.name)&&p(n.id)){yield{type:"tool_call",id:n.id,name:n.name,args:n.input};continue}else if(g(n,"input_json_delta")){if(mo(t)&&t.tool_call_chunks?.length){let i=t.tool_call_chunks[0];yield{type:"tool_call_chunk",id:i.id,name:i.name,args:i.args,index:i.index};continue}}else if(g(n,"server_tool_use")&&p(n.name)&&p(n.id)){let{name:i,id:a}=n;if(i==="web_search"){yield{id:a,type:"server_tool_call",name:"web_search",args:{query:Z(()=>{if(typeof n.input=="string")return n.input;if(b(n.input)&&p(n.input.query))return n.input.query;if(p(n.partial_json)){let s=Zt(n.partial_json);if(s?.query)return s.query}return""})}};continue}else if(n.name==="code_execution"){yield{id:a,type:"server_tool_call",name:"code_execution",args:{code:Z(()=>{if(typeof n.input=="string")return n.input;if(b(n.input)&&p(n.input.code))return n.input.code;if(p(n.partial_json)){let s=Zt(n.partial_json);if(s?.code)return s.code}return""})}};continue}}else if(g(n,"web_search_tool_result")&&p(n.tool_use_id)&&U(n.content)){let{content:i,tool_use_id:a}=n;yield{type:"server_tool_call_result",name:"web_search",toolCallId:a,status:"success",output:{urls:i.reduce((s,o)=>g(o,"web_search_result")?[...s,o.url]:s,[])}};continue}else if(g(n,"code_execution_tool_result")&&p(n.tool_use_id)&&b(n.content)){yield{type:"server_tool_call_result",name:"code_execution",toolCallId:n.tool_use_id,status:"success",output:n.content};continue}else if(g(n,"mcp_tool_use")){yield{id:n.id,type:"server_tool_call",name:"mcp_tool_use",args:n.input};continue}else if(g(n,"mcp_tool_result")&&p(n.tool_use_id)&&b(n.content)){yield{type:"server_tool_call_result",name:"mcp_tool_use",toolCallId:n.tool_use_id,status:"success",output:n.content};continue}else if(g(n,"container_upload")){yield{type:"server_tool_call",name:"container_upload",args:n.input};continue}else if(g(n,"search_result")){yield{id:n.id,type:"non_standard",value:n};continue}else if(g(n,"tool_result")){yield{id:n.id,type:"non_standard",value:n};continue}else{let i=$n(n);if(i){yield i;continue}}yield{type:"non_standard",value:n}}}return Array.from(e())}var jn={translateContent:Ln,translateContentChunk:Ln};function mo(t){return typeof t?._getType=="function"&&typeof t.concat=="function"&&t._getType()==="ai"}function _o(t){return Nn(t)?{type:t.type,mimeType:t.mime_type,url:t.url,metadata:t.metadata}:Pn(t)?{type:t.type,mimeType:t.mime_type??"application/octet-stream",data:t.data,metadata:t.metadata}:kn(t)?{type:t.type,mimeType:t.mime_type,fileId:t.id,metadata:t.metadata}:t}function Dn(t){return t.map(_o)}function Bn(t){return!!(g(t,"image_url")&&b(t.image_url)||g(t,"input_audio")&&b(t.input_audio)||g(t,"file")&&b(t.file))}function Hn(t){if(g(t,"image_url")&&b(t.image_url)&&p(t.image_url.url)){let e=Yt({dataUrl:t.image_url.url});return e?{type:"image",mimeType:e.mime_type,data:e.data}:{type:"image",url:t.image_url.url}}else{if(g(t,"input_audio")&&b(t.input_audio)&&p(t.input_audio.data)&&p(t.input_audio.format))return{type:"audio",data:t.input_audio.data,mimeType:`audio/${t.input_audio.format}`};if(g(t,"file")&&b(t.file)&&p(t.file.data)){let e=Yt({dataUrl:t.file.data});if(e)return{type:"file",data:e.data,mimeType:e.mime_type};if(p(t.file.file_id))return{type:"file",fileId:t.file.file_id}}}return t}function go(t){let e=[];typeof t.content=="string"?t.content.length>0&&e.push({type:"text",text:t.content}):e.push(...ot(t.content));for(let r of t.tool_calls??[])e.push({type:"tool_call",id:r.id,name:r.name,args:r.args});return e}function yo(t){let e=[];typeof t.content=="string"?t.content.length>0&&e.push({type:"text",text:t.content}):e.push(...ot(t.content));for(let r of t.tool_calls??[])e.push({type:"tool_call",id:r.id,name:r.name,args:r.args});return e}function ot(t){let e=[];for(let r of t)Bn(r)?e.push(Hn(r)):e.push(r);return e}function wo(t){if(t.type==="url_citation"){let{url:e,title:r,start_index:n,end_index:i}=t;return{type:"citation",url:e,title:r,startIndex:n,endIndex:i}}if(t.type==="file_citation"){let{file_id:e,filename:r,index:n}=t;return{type:"citation",title:r,startIndex:n,endIndex:n,fileId:e}}return t}function Fn(t){function*e(){b(t.additional_kwargs?.reasoning)&&U(t.additional_kwargs.reasoning.summary)&&(yield{type:"reasoning",reasoning:t.additional_kwargs.reasoning.summary.reduce((n,i)=>b(i)&&p(i.text)?`${n}${i.text}`:n,"")});let r=typeof t.content=="string"?[{type:"text",text:t.content}]:t.content;for(let n of r)if(g(n,"text")){let{text:i,annotations:a,phase:s,extras:o,...c}=n,u=b(o)?{...o}:{};p(s)&&(u.phase=s);let l=Object.keys(u).length>0?{extras:u}:{};Array.isArray(a)?yield{...c,...l,type:"text",text:String(i),annotations:a.map(wo)}:yield{...c,...l,type:"text",text:String(i)}}for(let n of t.tool_calls??[])yield{type:"tool_call",id:n.id,name:n.name,args:n.args};if(b(t.additional_kwargs)&&U(t.additional_kwargs.tool_outputs))for(let n of t.additional_kwargs.tool_outputs){if(g(n,"web_search_call")){let i={};if(b(n.action)&&p(n.action.query)&&(i.query=n.action.query),yield{id:n.id,type:"server_tool_call",name:"web_search",args:i},n.status==="completed"||n.status==="failed"){let a={};b(n.action)&&(a.action=n.action),yield{type:"server_tool_call_result",toolCallId:p(n.id)?n.id:"",status:n.status==="completed"?"success":"error",output:a}}continue}else if(g(n,"file_search_call")){yield{id:n.id,type:"server_tool_call",name:"file_search",args:{queries:U(n.queries)?n.queries:[]}},(n.status==="completed"||n.status==="failed")&&(yield{type:"server_tool_call_result",toolCallId:p(n.id)?n.id:"",status:n.status==="completed"?"success":"error",output:U(n.results)?{results:n.results}:{}});continue}else if(g(n,"computer_call")){yield{type:"non_standard",value:n};continue}else if(g(n,"code_interpreter_call")){if(p(n.code)&&(yield{id:n.id,type:"server_tool_call",name:"code_interpreter",args:{code:n.code}}),U(n.outputs)){let i=Z(()=>{if(n.status!=="in_progress"){if(n.status==="completed")return 0;if(n.status==="incomplete")return 127;if(n.status!=="interpreting"&&n.status==="failed")return 1}});for(let a of n.outputs)if(g(a,"logs")){yield{type:"server_tool_call_result",toolCallId:n.id??"",status:"success",output:{type:"code_interpreter_output",returnCode:i??0,stderr:[0,void 0].includes(i)?void 0:String(a.logs),stdout:[0,void 0].includes(i)?String(a.logs):void 0}};continue}}continue}else if(g(n,"mcp_call")){yield{id:n.id,type:"server_tool_call",name:"mcp_call",args:n.input};continue}else if(g(n,"mcp_list_tools")){yield{id:n.id,type:"server_tool_call",name:"mcp_list_tools",args:n.input};continue}else if(g(n,"mcp_approval_request")){yield{type:"non_standard",value:n};continue}else if(g(n,"tool_search_call")){let i={};b(n.arguments)&&Object.assign(i,n.arguments);let a={};p(n.execution)&&(a.execution=n.execution),p(n.status)&&(a.status=n.status),p(n.call_id)&&(a.call_id=n.call_id),yield{id:p(n.id)?n.id:"",type:"server_tool_call",name:"tool_search",args:i,...Object.keys(a).length>0?{extras:a}:{}};continue}else if(g(n,"tool_search_output")){let i={name:"tool_search"};p(n.execution)&&(i.execution=n.execution),yield{type:"server_tool_call_result",toolCallId:p(n.id)?n.id:"",status:n.status==="completed"?"success":n.status==="failed"?"error":"success",output:{tools:U(n.tools)?n.tools:[]},extras:i};continue}else if(g(n,"image_generation_call")){p(n.result)&&(yield{type:"image",mimeType:"image/png",data:n.result,id:p(n.id)?n.id:void 0,metadata:{status:p(n.status)?n.status:void 0}}),yield{type:"non_standard",value:n};continue}b(n)&&(yield{type:"non_standard",value:n})}}return Array.from(e())}function bo(t){function*e(){yield*Fn(t);for(let r of t.tool_call_chunks??[])yield{type:"tool_call_chunk",id:r.id,name:r.name,args:r.args}}return Array.from(e())}var Gn={translateContent:t=>typeof t.content=="string"?go(t):Fn(t),translateContentChunk:t=>typeof t.content=="string"?yo(t):bo(t)};function zn(t){return typeof t=="object"&&t!==null&&"type"in t&&"content"in t&&(typeof t.content=="string"||Array.isArray(t.content))}function Vn(t,e="pretty"){return e==="pretty"?Eo(t):JSON.stringify(t)}function Eo(t){let e=[],r=` ${t.type.charAt(0).toUpperCase()+t.type.slice(1)} Message `,n=Math.floor((80-r.length)/2),i="=".repeat(n),a=r.length%2===0?i:`${i}=`;if(e.push(`${i}${r}${a}`),t.type==="ai"){let s=t;if(s.tool_calls&&s.tool_calls.length>0){e.push("Tool Calls:");for(let o of s.tool_calls){e.push(` ${o.name} (${o.id})`),e.push(` Call ID: ${o.id}`),e.push(" Args:");for(let[c,u]of Object.entries(o.args))e.push(` ${c}: ${typeof u=="object"?JSON.stringify(u):u}`)}}}if(t.type==="tool"){let s=t;s.name&&e.push(`Name: ${s.name}`)}return typeof t.content=="string"&&t.content.trim()&&(e.length>1&&e.push(""),e.push(t.content)),e.join(`
3
+ `)}var er=Symbol.for("langchain.message");function qn(t){return Array.isArray(t)?t:typeof t=="string"?t===""?[]:[{type:"text",text:t}]:t==null?[]:[t]}function W(t,e){if(typeof t=="string")return t===""?e:typeof e=="string"?t+e:Array.isArray(e)&&e.length===0?t:Array.isArray(e)&&e.some(r=>pe(r))?[{type:"text",source_type:"text",text:t},...e]:[{type:"text",text:t},...e];if(Array.isArray(e)){let r=qn(t);return Le(r,e)??[...r,...e]}else return e===""?t:Array.isArray(t)&&t.some(r=>pe(r))?[...t,{type:"file",source_type:"text",text:e}]:[...qn(t),{type:"text",text:e}]}function Xn(t,e){return t==="error"||e==="error"?"error":"success"}function vo(t,e){function r(n,i){if(typeof n!="object"||n===null||n===void 0)return n;if(i>=e)return Array.isArray(n)?"[Array]":"[Object]";if(Array.isArray(n))return n.map(s=>r(s,i+1));let a={};for(let s of Object.keys(n))a[s]=r(n[s],i+1);return a}return JSON.stringify(r(t,0),null,2)}var q=class extends ke{lc_namespace=["langchain_core","messages"];lc_serializable=!0;get lc_aliases(){return{additional_kwargs:"additional_kwargs",response_metadata:"response_metadata"}}[er]=!0;id;name;content;additional_kwargs;response_metadata;_getType(){return this.type}getType(){return this._getType()}constructor(t){let e=typeof t=="string"||Array.isArray(t)?{content:t}:t;e.additional_kwargs||(e.additional_kwargs={}),e.response_metadata||(e.response_metadata={}),super(e),this.name=e.name,e.content===void 0&&e.contentBlocks!==void 0?(this.content=e.contentBlocks,this.response_metadata={output_version:"v1",...e.response_metadata}):e.content!==void 0?(this.content=e.content??[],this.response_metadata=e.response_metadata):(this.content=[],this.response_metadata=e.response_metadata),this.additional_kwargs=e.additional_kwargs,this.id=e.id}get text(){return typeof this.content=="string"?this.content:Array.isArray(this.content)?this.content.map(t=>typeof t=="string"?t:t.type==="text"?t.text:"").join(""):""}get contentBlocks(){let t=typeof this.content=="string"?[{type:"text",text:this.content}]:this.content;return[Dn,ot,Un].reduce((e,r)=>r(e),t)}toDict(){return{type:this.getType(),data:this.toJSON().kwargs}}static lc_name(){return"BaseMessage"}get _printableFields(){return{id:this.id,content:this.content,name:this.name,additional_kwargs:this.additional_kwargs,response_metadata:this.response_metadata}}static isInstance(t){return typeof t=="object"&&t!==null&&er in t&&t[er]===!0&&zn(t)}static[Symbol.hasInstance](t){return this.isInstance(t)}_updateId(t){this.id=t,this.lc_kwargs.id=t}get[Symbol.toStringTag](){return this.constructor.lc_name()}[Symbol.for("nodejs.util.inspect.custom")](t){if(t===null)return this;let e=vo(this._printableFields,Math.max(4,t));return`${this.constructor.lc_name()} ${e}`}toFormattedString(t="pretty"){return Vn(this,t)}};function td(t){return Array.isArray(t)&&t.every(e=>typeof e.index=="number")}var So=["index","created","timestamp"];function L(t,e,r){let n=r?.ignoreKeys??So;if(t==null&&e==null)return;if(t==null||e==null)return t??e;let i={...t};for(let[a,s]of Object.entries(e))if(i[a]==null)i[a]=s;else{if(s==null)continue;if(typeof i[a]!=typeof s||Array.isArray(i[a])!==Array.isArray(s))throw new Error(`field[${a}] already exists in the message chunk, but with a different type.`);if(typeof i[a]=="string"){if(a==="type")continue;if(["id","name","output_version","model_provider"].includes(a))s&&(i[a]=s);else{if(n.includes(a))continue;i[a]+=s}}else if(typeof i[a]=="number"){if(n.includes(a))continue;i[a]=i[a]+s}else if(typeof i[a]=="object"&&!Array.isArray(i[a]))i[a]=L(i[a],s,r);else if(Array.isArray(i[a]))i[a]=Le(i[a],s,r);else{if(i[a]===s)continue;console.warn(`field[${a}] already exists in this message chunk and value has unsupported type.`)}}return i}function xo(t){return typeof t=="number"||typeof t=="string"}function Kn(t){return typeof t!="object"||t===null||!("index"in t)?!1:xo(t.index)}function Jn(t){if(typeof t!="object"||t===null||!("id"in t))return!1;let e=t.id;return e!=null&&e!==""}function Wn(t){return t.endsWith("_delta")?t.slice(0,-6):t}function To(t,e){return typeof t!="object"||t===null||typeof e!="object"||e===null||!("type"in t)||!("type"in e)?!1:typeof t.type=="string"&&typeof e.type=="string"&&Wn(t.type)!==Wn(e.type)}function Ao(t,e){let r=Kn(e),n=Jn(e);return!r&&!n?-1:t.findIndex(i=>{let a=Kn(i),s=Jn(i);return r&&a?i.index!==e.index||To(i,e)?!1:s&&n?i.id===e.id:!0:!r&&!a&&n&&s?i.id===e.id:!1})}function Le(t,e,r){if(!(t==null&&e==null)){if(t==null||e==null)return t||e;{let n=[...t];for(let i of e){let a=Ao(n,i);if(a!==-1)n[a]=L(n[a],i,r);else{if(typeof i=="object"&&i!==null&&"text"in i&&i.text==="")continue;n.push(i)}}return n}}}function Qn(t,e,r){if(!(t==null&&e==null)){if(t==null||e==null)return t??e;if(typeof t!=typeof e)throw new Error(`Cannot merge objects of different types.
4
+ Left ${typeof t}
5
+ Right ${typeof e}`);if(typeof t=="string"&&typeof e=="string")return t+e;if(Array.isArray(t)&&Array.isArray(e))return Le(t,e,r);if(typeof t=="object"&&typeof e=="object")return L(t,e,r);if(t===e)return t;throw new Error(`Can not merge objects of different types.
6
+ Left ${t}
7
+ Right ${e}`)}}var ee=class Yn extends q{static isInstance(e){if(!super.isInstance(e))return!1;let r=Object.getPrototypeOf(e);for(;r!==null;){if(r===Yn.prototype)return!0;r=Object.getPrototypeOf(r)}return!1}static[Symbol.hasInstance](e){return this.isInstance(e)}};function Zn(t){return typeof t.role=="string"}function ei(t){return typeof t?._getType=="function"}function rd(t){return ee.isInstance(t)}var od=P({ToolMessage:()=>ct,ToolMessageChunk:()=>Co,defaultToolCallParser:()=>tr,isDirectToolOutput:()=>Io,isToolMessage:()=>Oo,isToolMessageChunk:()=>Ro});function Io(t){return t!=null&&typeof t=="object"&&"lc_direct_tool_output"in t&&t.lc_direct_tool_output===!0}var ct=class extends q{static lc_name(){return"ToolMessage"}get lc_aliases(){return{tool_call_id:"tool_call_id"}}lc_direct_tool_output=!0;type="tool";status;tool_call_id;metadata;artifact;constructor(t,e,r){let n=typeof t=="string"||Array.isArray(t)?{content:t,name:r,tool_call_id:e}:t;super(n),this.tool_call_id=n.tool_call_id,this.artifact=n.artifact,this.status=n.status,this.metadata=n.metadata}static isInstance(t){return super.isInstance(t)&&t.type==="tool"}static[Symbol.hasInstance](t){return this.isInstance(t)}get _printableFields(){return{...super._printableFields,tool_call_id:this.tool_call_id,artifact:this.artifact}}},Co=class extends ee{type="tool";tool_call_id;status;artifact;constructor(t){super(t),this.tool_call_id=t.tool_call_id,this.artifact=t.artifact,this.status=t.status}static lc_name(){return"ToolMessageChunk"}concat(t){let e=this.constructor;return new e({content:W(this.content,t.content),additional_kwargs:L(this.additional_kwargs,t.additional_kwargs),response_metadata:L(this.response_metadata,t.response_metadata),artifact:Qn(this.artifact,t.artifact),tool_call_id:this.tool_call_id,id:this.id??t.id,status:Xn(this.status,t.status)})}static isInstance(t){return super.isInstance(t)&&t.type==="tool"}static[Symbol.hasInstance](t){return this.isInstance(t)}get _printableFields(){return{...super._printableFields,tool_call_id:this.tool_call_id,artifact:this.artifact}}};function tr(t){let e=[],r=[];for(let n of t)if(n.function){let i=n.function.name;try{let a=JSON.parse(n.function.arguments);e.push({name:i||"",args:a||{},id:n.id})}catch{r.push({name:i,args:n.function.arguments,id:n.id,error:"Malformed args."})}}else continue;return[e,r]}function Oo(t){return typeof t=="object"&&t!==null&&"getType"in t&&typeof t.getType=="function"&&t.getType()==="tool"}function Ro(t){return t._getType()==="tool"}function rr(t){switch(t){case"csv":return"text/csv";case"doc":return"application/vnd.openxmlformats-officedocument.wordprocessingml.document";case"docx":return"application/vnd.openxmlformats-officedocument.wordprocessingml.document";case"html":return"text/html";case"md":return"text/markdown";case"pdf":return"application/pdf";case"txt":return"text/plain";case"xls":return"application/vnd.ms-excel";case"xlsx":return"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";case"gif":return"image/gif";case"jpeg":return"image/jpeg";case"jpg":return"image/jpeg";case"png":return"image/png";case"webp":return"image/webp";case"flv":return"video/flv";case"mkv":return"video/mkv";case"mov":return"video/mov";case"mp4":return"video/mp4";case"mpeg":return"video/mpeg";case"mpg":return"video/mpg";case"three_gp":return"video/three_gp";case"webm":return"video/webm";case"wmv":return"video/wmv";default:return"application/octet-stream"}}function Mo(t){if(b(t.document)&&b(t.document.source)){let e=rr(b(t.document)&&p(t.document.format)?t.document.format:"");if(b(t.document.source)){if(b(t.document.source.s3Location)&&p(t.document.source.s3Location.uri))return{type:"file",mimeType:e,fileId:t.document.source.s3Location.uri};if(st(t.document.source.bytes))return{type:"file",mimeType:e,data:t.document.source.bytes};if(p(t.document.source.text))return{type:"file",mimeType:e,data:Buffer.from(t.document.source.text).toString("base64")};if(U(t.document.source.content))return{type:"file",mimeType:e,data:t.document.source.content.reduce((r,n)=>b(n)&&p(n.text)?r+n.text:r,"")}}}return{type:"non_standard",value:t}}function No(t){if(g(t,"image")&&b(t.image)){let e=rr(b(t.image)&&p(t.image.format)?t.image.format:"");if(b(t.image.source)){if(b(t.image.source.s3Location)&&p(t.image.source.s3Location.uri))return{type:"image",mimeType:e,fileId:t.image.source.s3Location.uri};if(st(t.image.source.bytes))return{type:"image",mimeType:e,data:t.image.source.bytes}}}return{type:"non_standard",value:t}}function Po(t){if(g(t,"video")&&b(t.video)){let e=rr(b(t.video)&&p(t.video.format)?t.video.format:"");if(b(t.video.source)){if(b(t.video.source.s3Location)&&p(t.video.source.s3Location.uri))return{type:"video",mimeType:e,fileId:t.video.source.s3Location.uri};if(st(t.video.source.bytes))return{type:"video",mimeType:e,data:t.video.source.bytes}}}return{type:"non_standard",value:t}}function ti(t){function*e(){let r=typeof t.content=="string"?[{type:"text",text:t.content}]:t.content;for(let n of r){if(g(n,"reasoning")&&p(n.reasoning)){yield{...n,type:"reasoning",reasoning:n.reasoning};continue}else if(g(n,"cache_point")){yield{type:"non_standard",value:n};continue}else if(g(n,"citations_content")&&b(n.citationsContent)){yield{type:"text",text:U(n.citationsContent.content)?n.citationsContent.content.reduce((i,a)=>b(a)&&p(a.text)?i+a.text:i,""):"",annotations:U(n.citationsContent.citations)?n.citationsContent.citations.reduce((i,a)=>{if(b(a)){let s=U(a.sourceContent)?a.sourceContent.reduce((c,u)=>b(u)&&p(u.text)?c+u.text:c,""):"",o=Z(()=>{if(b(a.location)){let c=a.location.documentChar||a.location.documentPage||a.location.documentChunk;if(b(c))return{source:Y(c.documentIndex)?c.documentIndex.toString():void 0,startIndex:Y(c.start)?c.start:void 0,endIndex:Y(c.end)?c.end:void 0}}return{}});i.push({type:"citation",citedText:s,...o})}return i},[]):[]};continue}else if(g(n,"document")&&b(n.document)){yield Mo(n);continue}else if(g(n,"guard_content")){yield{type:"non_standard",value:n};continue}else if(g(n,"image")&&b(n.image)){yield No(n);continue}else if(g(n,"reasoning_content")&&b(n.reasoningText)&&p(n.reasoningText.text)){yield{type:"reasoning",reasoning:n.reasoningText.text,...p(n.reasoningText.signature)?{signature:n.reasoningText.signature}:{}};continue}else if(g(n,"reasoning_content")&&p(n.reasoningText)){yield{type:"reasoning",reasoning:n.reasoningText};continue}else if(g(n,"text")&&p(n.text)){yield{type:"text",text:n.text};continue}else if(g(n,"tool_result")){yield{type:"non_standard",value:n};continue}else{if(g(n,"tool_call"))continue;if(g(n,"video")&&b(n.video)){yield Po(n);continue}}yield{type:"non_standard",value:n}}}return Array.from(e())}var ri={translateContent:ti,translateContentChunk:ti};function ni(t){let e=[],r=t.additional_kwargs?.reasoning_content;if(p(r)&&r.length>0&&e.push({type:"reasoning",reasoning:r}),typeof t.content=="string")t.content.length>0&&e.push({type:"text",text:t.content});else for(let n of t.content)typeof n=="object"&&"type"in n&&n.type==="text"&&"text"in n&&p(n.text)&&e.push({type:"text",text:n.text});for(let n of t.tool_calls??[])e.push({type:"tool_call",id:n.id,name:n.name,args:n.args});return e}var ii={translateContent:ni,translateContentChunk:ni};function ai(t){function*e(){let r=typeof t.content=="string"?[{type:"text",text:t.content}]:t.content;for(let n of r){if(g(n,"text")&&p(n.text)){yield{type:"text",text:n.text};continue}else if(g(n,"thinking")&&p(n.thinking)){yield{type:"reasoning",reasoning:n.thinking,...n.signature?{signature:n.signature}:{}};continue}else if(g(n,"inlineData")&&b(n.inlineData)&&p(n.inlineData.mimeType)&&p(n.inlineData.data)){yield{type:"file",mimeType:n.inlineData.mimeType,data:n.inlineData.data};continue}else if(g(n,"functionCall")&&b(n.functionCall)&&p(n.functionCall.name)&&b(n.functionCall.args)){yield{type:"tool_call",id:t.id,name:n.functionCall.name,args:n.functionCall.args};continue}else if(g(n,"functionResponse")){yield{type:"non_standard",value:n};continue}else if(g(n,"fileData")&&b(n.fileData)&&p(n.fileData.mimeType)&&p(n.fileData.fileUri)){yield{type:"file",mimeType:n.fileData.mimeType,fileId:n.fileData.fileUri};continue}else if(g(n,"executableCode")){yield{type:"non_standard",value:n};continue}else if(g(n,"codeExecutionResult")){yield{type:"non_standard",value:n};continue}yield{type:"non_standard",value:n}}}return Array.from(e())}var si={translateContent:ai,translateContentChunk:ai};function oi(t){function*e(){let r=typeof t.content=="string"?[{type:"text",text:t.content}]:t.content;for(let n of r){if(g(n,"reasoning")&&p(n.reasoning)){let i=Z(()=>{let a=r.indexOf(n);if(U(t.additional_kwargs?.signatures)&&a>=0)return t.additional_kwargs.signatures.at(a)});p(i)?yield{type:"reasoning",reasoning:n.reasoning,signature:i}:yield{type:"reasoning",reasoning:n.reasoning};continue}else if(g(n,"thinking")&&p(n.thinking)){yield{type:"reasoning",reasoning:n.thinking,...n.signature?{signature:n.signature}:{}};continue}else if(g(n,"text")&&p(n.text)){if(n.text==="")continue;yield{type:"text",text:n.text};continue}else if(g(n,"image_url")){if(p(n.image_url))if(n.image_url.startsWith("data:")){let i=n.image_url.match(/^data:([^;]+);base64,(.+)$/);i?yield{type:"image",data:i[2],mimeType:i[1]}:yield{type:"image",url:n.image_url}}else yield{type:"image",url:n.image_url};continue}else if(g(n,"media")&&p(n.mimeType)&&p(n.data)){yield{type:"file",mimeType:n.mimeType,data:n.data};continue}yield{type:"non_standard",value:n}}for(let n of t.tool_calls??[])yield{type:"tool_call",id:n.id,name:n.name,args:n.args}}return Array.from(e())}var ci={translateContent:oi,translateContentChunk:oi};function li(t){let e=[],r=t.additional_kwargs?.reasoning;if(p(r)&&r.length>0&&e.push({type:"reasoning",reasoning:r}),typeof t.content=="string"){let n=t.content,i=n.match(/<think>([\s\S]*?)<\/think>/);if(i){let a=i[1].trim();a.length>0&&e.push({type:"reasoning",reasoning:a}),n=n.replace(/<think>[\s\S]*?<\/think>/,"").trim()}n.length>0&&e.push({type:"text",text:n})}else for(let n of t.content)if(typeof n=="object"&&"type"in n&&n.type==="text"&&"text"in n&&p(n.text)){let i=n.text,a=i.match(/<think>([\s\S]*?)<\/think>/);if(a){let s=a[1].trim();s.length>0&&e.push({type:"reasoning",reasoning:s}),i=i.replace(/<think>[\s\S]*?<\/think>/,"").trim()}i.length>0&&e.push({type:"text",text:i})}for(let n of t.tool_calls??[])e.push({type:"tool_call",id:n.id,name:n.name,args:n.args});return e}var ui={translateContent:li,translateContentChunk:li};function di(t){let e=[],r=t.additional_kwargs?.reasoning_content;if(p(r)&&r.length>0&&e.push({type:"reasoning",reasoning:r}),typeof t.content=="string")t.content.length>0&&e.push({type:"text",text:t.content});else for(let n of t.content)typeof n=="object"&&"type"in n&&n.type==="text"&&"text"in n&&p(n.text)&&e.push({type:"text",text:n.text});for(let n of t.tool_calls??[])e.push({type:"tool_call",id:n.id,name:n.name,args:n.args});return e}var fi={translateContent:di,translateContentChunk:di};function hi(t){let e=[],r=t.additional_kwargs?.reasoning_details,n=!1;if(Array.isArray(r)&&r.length>0)for(let i of r){if(i==null||typeof i!="object")continue;let a=i.type;if(a==="reasoning.summary"){let s=i.summary;p(s)&&s.length>0&&(e.push({type:"reasoning",reasoning:s}),n=!0)}else if(a==="reasoning.text"){let s=i.text;p(s)&&s.length>0&&(e.push({type:"reasoning",reasoning:s}),n=!0)}}if(!n){let i=t.additional_kwargs?.reasoning_content;p(i)&&i.length>0&&e.push({type:"reasoning",reasoning:i})}if(typeof t.content=="string")t.content.length>0&&e.push({type:"text",text:t.content});else for(let i of t.content)typeof i=="object"&&"type"in i&&i.type==="text"&&"text"in i&&p(i.text)&&e.push({type:"text",text:i.text});for(let i of t.tool_calls??[])e.push({type:"tool_call",id:i.id,name:i.name,args:i.args});return e}var pi={translateContent:hi,translateContentChunk:hi};function mi(t){let e=[];if(b(t.additional_kwargs?.reasoning)){let n=t.additional_kwargs.reasoning;if(U(n.summary)){let i=n.summary.reduce((a,s)=>b(s)&&p(s.text)?`${a}${s.text}`:a,"");i.length>0&&e.push({type:"reasoning",reasoning:i})}}let r=t.additional_kwargs?.reasoning_content;if(p(r)&&r.length>0&&e.push({type:"reasoning",reasoning:r}),typeof t.content=="string")t.content.length>0&&e.push({type:"text",text:t.content});else for(let n of t.content)typeof n=="object"&&"type"in n&&n.type==="text"&&"text"in n&&p(n.text)&&e.push({type:"text",text:n.text});for(let n of t.tool_calls??[])e.push({type:"tool_call",id:n.id,name:n.name,args:n.args});return e}var _i={translateContent:mi,translateContentChunk:mi};function gi(t){function*e(){let r=Z(()=>{if(typeof t.content=="string")return t.additional_kwargs.originalTextContentBlock?[{...t.additional_kwargs.originalTextContentBlock,type:"text"}]:[{type:"text",text:t.content}];{let n=t.additional_kwargs?.originalTextContentBlock;if(n?.thoughtSignature&&!t.content.some(i=>"thoughtSignature"in i)){let i=[...t.content];for(let a=i.length-1;a>=0;a--){let s=i[a];if(s.type==="text"&&!s.thought)return s.thoughtSignature=n.thoughtSignature,i}}return t.content}});for(let n of r){let i=Z(()=>g(n,"text")&&p(n.text)?{type:"text",text:n.text}:g(n,"inlineData")&&b(n.inlineData)&&p(n.inlineData.mimeType)&&p(n.inlineData.data)?{type:"file",mimeType:n.inlineData.mimeType,data:n.inlineData.data}:g(n,"functionCall")&&b(n.functionCall)&&p(n.functionCall.name)&&b(n.functionCall.args)?{type:"tool_call",id:t.id,name:n.functionCall.name,args:n.functionCall.args}:g(n,"functionResponse")?{type:"non_standard",value:n}:g(n,"fileData")&&b(n.fileData)&&p(n.fileData.mimeType)&&p(n.fileData.fileUri)?{type:"file",mimeType:n.fileData.mimeType,fileId:n.fileData.fileUri}:g(n,"executableCode")?{type:"non_standard",value:n}:g(n,"codeExecutionResult")?{type:"non_standard",value:n}:{type:"non_standard",value:n}),a=Z(()=>"thought"in n&&n.thought?{type:"reasoning",reasoning:i.type==="text"?i.text:"",reasoningContentBlock:i}:i),s={thought:n.thought,thoughtSignature:n.thoughtSignature,partMetadata:n.partMetadata,...a};for(let o in s)s[o]===void 0&&delete s[o];yield s}}return Array.from(e())}var yi={translateContent:gi,translateContentChunk:gi};globalThis.lc_block_translators_registry??=new Map([["anthropic",jn],["bedrock-converse",ri],["deepseek",ii],["google",yi],["google-genai",si],["google-vertexai",ci],["groq",ui],["ollama",fi],["openai",Gn],["openrouter",pi],["xai",_i]]);function nr(t){return globalThis.lc_block_translators_registry.get(t)}function wi(t,e){return L(t,e)??{}}function bi(t,e){let r={};return(t?.audio!==void 0||e?.audio!==void 0)&&(r.audio=(t?.audio??0)+(e?.audio??0)),(t?.image!==void 0||e?.image!==void 0)&&(r.image=(t?.image??0)+(e?.image??0)),(t?.video!==void 0||e?.video!==void 0)&&(r.video=(t?.video??0)+(e?.video??0)),(t?.document!==void 0||e?.document!==void 0)&&(r.document=(t?.document??0)+(e?.document??0)),(t?.text!==void 0||e?.text!==void 0)&&(r.text=(t?.text??0)+(e?.text??0)),r}function ko(t,e){let r={...bi(t,e)};return(t?.cache_read!==void 0||e?.cache_read!==void 0)&&(r.cache_read=(t?.cache_read??0)+(e?.cache_read??0)),(t?.cache_creation!==void 0||e?.cache_creation!==void 0)&&(r.cache_creation=(t?.cache_creation??0)+(e?.cache_creation??0)),r}function Lo(t,e){let r={...bi(t,e)};return(t?.reasoning!==void 0||e?.reasoning!==void 0)&&(r.reasoning=(t?.reasoning??0)+(e?.reasoning??0)),r}function lt(t,e){return{input_tokens:(t?.input_tokens??0)+(e?.input_tokens??0),output_tokens:(t?.output_tokens??0)+(e?.output_tokens??0),total_tokens:(t?.total_tokens??0)+(e?.total_tokens??0),input_token_details:ko(t?.input_token_details,e?.input_token_details),output_token_details:Lo(t?.output_token_details,e?.output_token_details)}}function Ei(t){let e=Symbol.for(t);return{brand(r,n){let i=n?Symbol.for(`${t}.${n}`):e;class a extends r{[i]=!0;constructor(...o){super(...o)}static isInstance(o){return typeof o=="object"&&o!==null&&i in o&&o[i]===!0}static[Symbol.hasInstance](o){return this.isInstance(o)}}return Object.defineProperty(a,"name",{value:r.name}),a},sub(r){return Ei(`${t}.${r}`)},isInstance(r){return typeof r=="object"&&r!==null&&e in r&&r[e]===!0}}}var vi=Ei("langchain");var qd=P({ContextOverflowError:()=>jo,LangChainError:()=>sr,ModelAbortError:()=>Uo,addLangChainErrorFields:()=>ir,getRetryable:()=>$o,ns:()=>ut,stampRetryable:()=>ar});function ir(t,e){return t.lc_error_code=e,t.message=`${t.message}
8
+
9
+ Troubleshooting URL: https://docs.langchain.com/oss/javascript/langchain/errors/${e}/
10
+ `,t}var ut=vi.sub("error"),Si=Symbol.for("langchain.errors.retryable");function ar(t,e){if(typeof t!="object"||t===null)return t;try{Object.defineProperty(t,Si,{value:e,configurable:!0})}catch{}return t}function $o(t){if(!(typeof t!="object"||t===null))return Object.getOwnPropertyDescriptor(t,Si)?.value}var sr=class extends ut.brand(Error){name="LangChainError";constructor(t){super(t),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},Uo=class extends ut.brand(sr,"model-abort"){name="ModelAbortError";partialOutput;constructor(t,e){super(t),this.partialOutput=e,ar(this,!1)}},jo=class xi extends ut.brand(sr,"context-overflow"){name="ContextOverflowError";cause;constructor(e){super(e??"Input exceeded the model's context window."),ar(this,!1)}static fromError(e){let r=new xi(e.message);return r.cause=e,r}};function Ti(t){return!!(t&&typeof t=="object"&&"type"in t&&t.type==="tool_call")}function Xd(t){return!!(t&&typeof t=="object"&&"toolCall"in t&&t.toolCall!=null&&typeof t.toolCall=="object"&&"id"in t.toolCall&&typeof t.toolCall.id=="string")}var Qd=class extends Error{output;constructor(t,e){super(t),this.output=e}};function ef(t,e=or){t=t.trim();let r=t.indexOf("```");if(r===-1)return e(t);let n=t.substring(r+3);n.startsWith(`json
11
+ `)?n=n.substring(5):n.startsWith("json")?n=n.substring(4):n.startsWith(`
12
+ `)&&(n=n.substring(1));let i=n.indexOf("```"),a=n;return i!==-1&&(a=n.substring(0,i)),e(a.trim())}function Do(t){try{return JSON.parse(t)}catch{}let e=t.trim();if(e.length===0)throw new Error("Unexpected end of JSON input");let r=0;function n(){for(;r<e.length&&/\s/.test(e[r]);)r+=1}function i(){if(e[r]!=='"')throw new Error(`Expected '"' at position ${r}, got '${e[r]}'`);r+=1;let l="",d=!1;for(;r<e.length;){let f=e[r];if(d){if(f==="n")l+=`
13
+ `;else if(f==="t")l+=" ";else if(f==="r")l+="\r";else if(f==="\\")l+="\\";else if(f==='"')l+='"';else if(f==="b")l+="\b";else if(f==="f")l+="\f";else if(f==="/")l+="/";else if(f==="u"){let h=e.substring(r+1,r+5);if(/^[0-9A-Fa-f]{0,4}$/.test(h))h.length===4?l+=String.fromCharCode(Number.parseInt(h,16)):l+=`u${h}`,r+=h.length;else throw new Error(`Invalid unicode escape sequence '\\u${h}' at position ${r}`)}else throw new Error(`Invalid escape sequence '\\${f}' at position ${r}`);d=!1}else if(f==="\\")d=!0;else{if(f==='"')return r+=1,l;l+=f}r+=1}return d&&(l+="\\"),l}function a(){let l=r,d="";if(e[r]==="-"&&(d+="-",r+=1),r<e.length&&e[r]==="0"&&(d+="0",r+=1,e[r]>="0"&&e[r]<="9"))throw new Error(`Invalid number at position ${l}`);if(r<e.length&&e[r]>="1"&&e[r]<="9")for(;r<e.length&&e[r]>="0"&&e[r]<="9";)d+=e[r],r+=1;if(r<e.length&&e[r]===".")for(d+=".",r+=1;r<e.length&&e[r]>="0"&&e[r]<="9";)d+=e[r],r+=1;if(r<e.length&&(e[r]==="e"||e[r]==="E"))for(d+=e[r],r+=1,r<e.length&&(e[r]==="+"||e[r]==="-")&&(d+=e[r],r+=1);r<e.length&&e[r]>="0"&&e[r]<="9";)d+=e[r],r+=1;if(d==="-")return-0;let f=Number.parseFloat(d);if(Number.isNaN(f))throw r=l,new Error(`Invalid number '${d}' at position ${l}`);return f}function s(){if(n(),r>=e.length)throw new Error(`Unexpected end of input at position ${r}`);let l=e[r];if(l==="{")return c();if(l==="[")return o();if(l==='"')return i();if("null".startsWith(e.substring(r,r+4)))return r+=Math.min(4,e.length-r),null;if("true".startsWith(e.substring(r,r+4)))return r+=Math.min(4,e.length-r),!0;if("false".startsWith(e.substring(r,r+5)))return r+=Math.min(5,e.length-r),!1;if(l==="-"||l>="0"&&l<="9")return a();throw new Error(`Unexpected character '${l}' at position ${r}`)}function o(){if(e[r]!=="[")throw new Error(`Expected '[' at position ${r}, got '${e[r]}'`);let l=[];if(r+=1,n(),r>=e.length)return l;if(e[r]==="]")return r+=1,l;for(;r<e.length;){if(n(),r>=e.length||(l.push(s()),n(),r>=e.length))return l;if(e[r]==="]")return r+=1,l;if(e[r]===","){r+=1;continue}throw new Error(`Expected ',' or ']' at position ${r}, got '${e[r]}'`)}return l}function c(){if(e[r]!=="{")throw new Error(`Expected '{' at position ${r}, got '${e[r]}'`);let l={};if(r+=1,n(),r>=e.length)return l;if(e[r]==="}")return r+=1,l;for(;r<e.length;){if(n(),r>=e.length)return l;let d=i();if(n(),r>=e.length)return l;if(e[r]!==":")throw new Error(`Expected ':' at position ${r}, got '${e[r]}'`);if(r+=1,n(),r>=e.length||(l[d]=s(),n(),r>=e.length))return l;if(e[r]==="}")return r+=1,l;if(e[r]===","){r+=1;continue}throw new Error(`Expected ',' or '}' at position ${r}, got '${e[r]}'`)}return l}let u=s();if(n(),r<e.length)throw new Error(`Unexpected character '${e[r]}' at position ${r}`);return u}function or(t){try{return typeof t>"u"?null:Do(t)}catch{return null}}var cr=class Ai extends q{static lc_name(){return"ChatMessage"}type="generic";role;static _chatMessageClass(){return Ai}constructor(e,r){(typeof e=="string"||Array.isArray(e))&&(e={content:e,role:r}),super(e),this.role=e.role}static isInstance(e){return super.isInstance(e)&&e.type==="generic"}static[Symbol.hasInstance](e){return this.isInstance(e)}get _printableFields(){return{...super._printableFields,role:this.role}}},Ii=class extends ee{static lc_name(){return"ChatMessageChunk"}type="generic";role;constructor(t,e){(typeof t=="string"||Array.isArray(t))&&(t={content:t,role:e}),super(t),this.role=t.role}concat(t){let e=this.constructor;return new e({content:W(this.content,t.content),additional_kwargs:L(this.additional_kwargs,t.additional_kwargs),response_metadata:L(this.response_metadata,t.response_metadata),role:this.role,id:this.id??t.id})}static isInstance(t){return super.isInstance(t)&&t.type==="generic"}static[Symbol.hasInstance](t){return this.isInstance(t)}get _printableFields(){return{...super._printableFields,role:this.role}}};function nf(t){return t._getType()==="generic"}function af(t){return t._getType()==="generic"}var Ci=class extends q{static lc_name(){return"FunctionMessage"}type="function";name;constructor(t){super(t),this.name=t.name}static isInstance(t){return super.isInstance(t)&&t.type==="function"}static[Symbol.hasInstance](t){return this.isInstance(t)}},Oi=class extends ee{static lc_name(){return"FunctionMessageChunk"}type="function";concat(t){let e=this.constructor;return new e({content:W(this.content,t.content),additional_kwargs:L(this.additional_kwargs,t.additional_kwargs),response_metadata:L(this.response_metadata,t.response_metadata),name:this.name??"",id:this.id??t.id})}static isInstance(t){return super.isInstance(t)&&t.type==="function"}static[Symbol.hasInstance](t){return this.isInstance(t)}};function lf(t){return t._getType()==="function"}function uf(t){return t._getType()==="function"}var dt=class extends q{static lc_name(){return"HumanMessage"}type="human";constructor(t){super(t)}static isInstance(t){return super.isInstance(t)&&t.type==="human"}static[Symbol.hasInstance](t){return this.isInstance(t)}},Ri=class extends ee{static lc_name(){return"HumanMessageChunk"}type="human";constructor(t){super(t)}concat(t){let e=this.constructor;return new e({content:W(this.content,t.content),additional_kwargs:L(this.additional_kwargs,t.additional_kwargs),response_metadata:L(this.response_metadata,t.response_metadata),id:this.id??t.id})}static isInstance(t){return super.isInstance(t)&&t.type==="human"}static[Symbol.hasInstance](t){return this.isInstance(t)}};function mf(t){return t.getType()==="human"}function _f(t){return t.getType()==="human"}var Mi=class extends q{type="remove";id;constructor(t){super({...t,content:[]}),this.id=t.id}get _printableFields(){return{...super._printableFields,id:this.id}}static isInstance(t){return super.isInstance(t)&&t.type==="remove"}static[Symbol.hasInstance](t){return this.isInstance(t)}};var ht=class ft extends q{static lc_name(){return"SystemMessage"}type="system";constructor(e){super(e)}concat(e){if(typeof e=="string")return new ft({content:W(this.content,e),additional_kwargs:this.additional_kwargs,response_metadata:this.response_metadata,id:this.id,name:this.name});if(ft.isInstance(e))return new ft({content:W(this.content,e.content),additional_kwargs:{...this.additional_kwargs,...e.additional_kwargs},response_metadata:{...this.response_metadata,...e.response_metadata},id:this.id??e.id,name:this.name??e.name});throw new Error("Unexpected chunk type for system message")}static isInstance(e){return super.isInstance(e)&&e.type==="system"}static[Symbol.hasInstance](e){return this.isInstance(e)}},Ni=class extends ee{static lc_name(){return"SystemMessageChunk"}type="system";constructor(t){super(t)}concat(t){let e=this.constructor;return new e({content:W(this.content,t.content),additional_kwargs:L(this.additional_kwargs,t.additional_kwargs),response_metadata:L(this.response_metadata,t.response_metadata),id:this.id??t.id})}static isInstance(t){return super.isInstance(t)&&t.type==="system"}static[Symbol.hasInstance](t){return this.isInstance(t)}};function xf(t){return t._getType()==="system"}function Tf(t){return t._getType()==="system"}function Bo(t){return t.isCustomTool===!0}var Df=t=>t();function Ho(t){return Ti(t)?t:typeof t.id=="string"&&t.type==="function"&&typeof t.function=="object"&&t.function!==null&&"arguments"in t.function&&typeof t.function.arguments=="string"&&"name"in t.function&&typeof t.function.name=="string"?{id:t.id,args:JSON.parse(t.function.arguments),name:t.function.name,type:"tool_call"}:t}function Fo(t){return typeof t=="object"&&t!=null&&t.lc===1&&Array.isArray(t.id)&&t.kwargs!=null&&typeof t.kwargs=="object"}function lr(t){let e,r;if(Fo(t)){let n=t.id.at(-1);n==="HumanMessage"||n==="HumanMessageChunk"?e="user":n==="AIMessage"||n==="AIMessageChunk"?e="assistant":n==="SystemMessage"||n==="SystemMessageChunk"?e="system":n==="FunctionMessage"||n==="FunctionMessageChunk"?e="function":n==="ToolMessage"||n==="ToolMessageChunk"?e="tool":e="unknown",r=t.kwargs}else{let{type:n,...i}=t;e=n,r=i}if(e==="human"||e==="user")return new dt(r);if(e==="ai"||e==="assistant"){let{tool_calls:n,...i}=r;if(!Array.isArray(n))return new $e(r);let a=n.map(Ho);return new $e({...i,tool_calls:a})}else{if(e==="system")return new ht(r);if(e==="developer")return new ht({...r,additional_kwargs:{...r.additional_kwargs,__openai_role__:"developer"}});if(e==="tool"&&"tool_call_id"in r)return new ct({...r,content:r.content,tool_call_id:r.tool_call_id,name:r.name});if(e==="remove"&&"id"in r&&typeof r.id=="string")return new Mi({...r,id:r.id});throw ir(new Error(`Unable to coerce message from array: only human, AI, system, developer, or tool message coercion is currently supported.
14
+
15
+ Received: ${JSON.stringify(t,null,2)}`),"MESSAGE_COERCION_FAILURE")}}function Bf(t){if(typeof t=="string")return new dt(t);if(ei(t))return t;if(Array.isArray(t)){let[e,r]=t;return lr({type:e,content:r})}else if(Zn(t)){let{role:e,...r}=t;return lr({...r,type:e})}else return lr(t)}function Go(t){if(typeof t=="string")return t;switch(t.type){case"text":return t.text??"";case"text-plain":return t.text??"[text-plain file]";case"image":case"image_url":return"[image]";case"audio":case"input_audio":return"[audio]";case"video":return"[video]";case"file":return"[file]";case"reasoning":case"tool_call":case"tool_call_chunk":case"invalid_tool_call":case"server_tool_call":case"server_tool_call_chunk":case"server_tool_call_result":case"non_standard":return"";default:return t.type?`[${t.type}]`:""}}function ki(t,e="Human",r="AI"){let n=[];for(let i of t){let a;if(i.type==="human")a=e;else if(i.type==="ai")a=r;else if(i.type==="system")a="System";else if(i.type==="tool")a="Tool";else if(i.type==="generic")a=i.role;else throw new Error(`Got unsupported message type: ${i.type}`);let s=i.name?`${i.name}, `:"",o=typeof i.content=="string"?i.content:Array.isArray(i.content)?i.content.map(Go).filter(Boolean).join(""):"",c=`${a}: ${s}${o}`;if(i.type==="ai"){let u=i;u.tool_calls&&u.tool_calls.length>0?c+=JSON.stringify(u.tool_calls):u.additional_kwargs&&"function_call"in u.additional_kwargs&&(c+=JSON.stringify(u.additional_kwargs.function_call))}n.push(c)}return n.join(`
16
+ `)}function zo(t){if(t.data!==void 0)return t;{let e=t;return{type:e.type,data:{content:e.text,role:e.role,name:void 0,tool_call_id:void 0}}}}function Vo(t){let e=zo(t);switch(e.type){case"human":return new dt(e.data);case"ai":return new $e(e.data);case"system":return new ht(e.data);case"function":if(e.data.name===void 0)throw new Error("Name must be defined for function messages");return new Ci(e.data);case"tool":if(e.data.tool_call_id===void 0)throw new Error("Tool call ID must be defined for tool messages");return new ct(e.data);case"generic":if(e.data.role===void 0)throw new Error("Role must be defined for chat messages");return new cr(e.data);default:throw new Error(`Got unexpected type: ${e.type}`)}}function Hf(t){return t.map(Vo)}function Ff(t){return t.map(e=>e.toDict())}function Gf(t){let e=t._getType();if(e==="human")return new Ri({...t});if(e==="ai"){let r={...t};return"tool_calls"in r&&(r={...r,tool_call_chunks:r.tool_calls?.map(n=>({...n,type:"tool_call_chunk",index:void 0,args:JSON.stringify(n.args)}))}),new Pi({...r})}else{if(e==="system")return new Ni({...t});if(e==="function")return new Oi({...t});if(cr.isInstance(t))return new Ii({...t});throw new Error("Unknown message type.")}}function Li(t){let e=t.reduce((i,a)=>{let s=i.findIndex(([o])=>"id"in a&&a.id&&"index"in a&&a.index!==void 0?a.id===o.id&&a.index===o.index:"id"in a&&a.id?a.id===o.id:"index"in a&&a.index!==void 0?a.index===o.index:!1);return s!==-1?i[s].push(a):i.push([a]),i},[]),r=[],n=[];for(let i of e){let a=null,s=i.some(Bo),o=i[0]?.name??"",c=i.map(f=>f.args||"").join(""),u=s?c:c.trim(),l=u.length?u:"{}",d=i.find(f=>f.id)?.id??i[0]?.id;if(s&&d){r.push({name:o,args:{input:u},id:d,type:"tool_call"});continue}try{if(a=or(l),!d||a===null||typeof a!="object"||Array.isArray(a))throw new Error("Malformed tool call chunk args.");r.push({name:o,args:a,id:d,type:"tool_call"})}catch{n.push({name:o,args:l,id:d,error:"Malformed args.",type:"invalid_tool_call"})}}return{tool_call_chunks:t,tool_calls:r,invalid_tool_calls:n}}function $i(t){return typeof t=="string"?t.length>0?[{type:"text",text:t}]:[]:Array.isArray(t)?t:t==null?[]:[t]}var $e=class extends q{type="ai";tool_calls=[];invalid_tool_calls=[];usage_metadata;get lc_aliases(){return{...super.lc_aliases,tool_calls:"tool_calls",invalid_tool_calls:"invalid_tool_calls",usage_metadata:"usage_metadata"}}constructor(t){let e;if(typeof t=="string"||Array.isArray(t))e={content:t,tool_calls:[],invalid_tool_calls:[],additional_kwargs:{}};else{e=t;let r=e.additional_kwargs?.tool_calls,n=e.tool_calls;r!=null&&r.length>0&&(n===void 0||n.length===0)&&console.warn(["New LangChain packages are available that more efficiently handle",`tool calling.
17
+
18
+ Please upgrade your packages to versions that set`,"message tool calls. e.g., `pnpm install @langchain/anthropic`,","pnpm install @langchain/openai`, etc."].join(" "));try{if(r!=null&&n===void 0){let[i,a]=tr(r);e.tool_calls=i??[],e.invalid_tool_calls=a??[]}else e.tool_calls=e.tool_calls??[],e.invalid_tool_calls=e.invalid_tool_calls??[]}catch{e.tool_calls=[],e.invalid_tool_calls=[]}if(e.response_metadata!==void 0&&"output_version"in e.response_metadata&&e.response_metadata.output_version==="v1"&&e.content!==void 0&&(e.contentBlocks=$i(e.content),e.content=void 0),e.contentBlocks!==void 0){if(Array.isArray(e.contentBlocks)||(e.contentBlocks=$i(e.contentBlocks)),e.tool_calls){let a=e.tool_calls.filter(s=>!e.contentBlocks?.some(o=>o.type==="tool_call"&&o.id===s.id&&o.name===s.name));e.contentBlocks.push(...a.map(s=>({type:"tool_call",id:s.id,name:s.name,args:s.args})))}let i=e.contentBlocks.filter(a=>a.type==="tool_call").filter(a=>!e.tool_calls?.some(s=>s.id===a.id&&s.name===a.name));i.length>0&&(e.tool_calls=[...e.tool_calls??[],...i.map(a=>({type:"tool_call",id:a.id,name:a.name,args:a.args}))])}}super(e),typeof e!="string"&&(this.tool_calls=e.tool_calls??this.tool_calls,this.invalid_tool_calls=e.invalid_tool_calls??this.invalid_tool_calls),this.usage_metadata=e.usage_metadata}static lc_name(){return"AIMessage"}get contentBlocks(){if(this.response_metadata&&"output_version"in this.response_metadata&&this.response_metadata.output_version==="v1")return this.content;if(this.response_metadata&&"model_provider"in this.response_metadata&&typeof this.response_metadata.model_provider=="string"){let e=nr(this.response_metadata.model_provider);if(e)return e.translateContent(this)}let t=super.contentBlocks;if(this.tool_calls){let e=this.tool_calls.filter(r=>!t.some(n=>n.id===r.id&&n.name===r.name));t.push(...e.map(r=>({type:"tool_call",id:r.id,name:r.name,args:r.args})))}return t}get _printableFields(){return{...super._printableFields,tool_calls:this.tool_calls,invalid_tool_calls:this.invalid_tool_calls,usage_metadata:this.usage_metadata}}static isInstance(t){return super.isInstance(t)&&t.type==="ai"}static[Symbol.hasInstance](t){return this.isInstance(t)}};function Xf(t){return t._getType()==="ai"}function Qf(t){return t._getType()==="ai"}var Pi=class extends ee{type="ai";tool_calls=[];invalid_tool_calls=[];tool_call_chunks=[];usage_metadata;constructor(t){let e;if(typeof t=="string"||Array.isArray(t))e={content:t,tool_calls:[],invalid_tool_calls:[],tool_call_chunks:[]};else if(t.tool_call_chunks===void 0||t.tool_call_chunks.length===0)e={...t,tool_calls:t.tool_calls??[],invalid_tool_calls:[],tool_call_chunks:[],usage_metadata:t.usage_metadata!==void 0?t.usage_metadata:void 0};else{let r=Li(t.tool_call_chunks??[]);e={...t,tool_call_chunks:r.tool_call_chunks,tool_calls:r.tool_calls,invalid_tool_calls:r.invalid_tool_calls,usage_metadata:t.usage_metadata!==void 0?t.usage_metadata:void 0}}super(e),this.tool_call_chunks=e.tool_call_chunks??this.tool_call_chunks,this.tool_calls=e.tool_calls??this.tool_calls,this.invalid_tool_calls=e.invalid_tool_calls??this.invalid_tool_calls,this.usage_metadata=e.usage_metadata}get lc_aliases(){return{...super.lc_aliases,tool_calls:"tool_calls",invalid_tool_calls:"invalid_tool_calls",tool_call_chunks:"tool_call_chunks",usage_metadata:"usage_metadata"}}static lc_name(){return"AIMessageChunk"}get contentBlocks(){if(this.response_metadata&&"output_version"in this.response_metadata&&this.response_metadata.output_version==="v1")return this.content;if(this.response_metadata&&"model_provider"in this.response_metadata&&typeof this.response_metadata.model_provider=="string"){let e=nr(this.response_metadata.model_provider);if(e)return e.translateContent(this)}let t=super.contentBlocks;if(this.tool_calls&&typeof this.content!="string"){let e=this.content.filter(r=>r.type==="tool_call").map(r=>r.id);for(let r of this.tool_calls)r.id&&!e.includes(r.id)&&t.push({...r,type:"tool_call",id:r.id,name:r.name,args:r.args})}return t}get _printableFields(){return{...super._printableFields,tool_calls:this.tool_calls,tool_call_chunks:this.tool_call_chunks,invalid_tool_calls:this.invalid_tool_calls,usage_metadata:this.usage_metadata}}concat(t){let e={content:W(this.content,t.content),additional_kwargs:L(this.additional_kwargs,t.additional_kwargs),response_metadata:wi(this.response_metadata,t.response_metadata),tool_call_chunks:[],tool_calls:[],id:this.id??t.id};if(this.tool_call_chunks!==void 0||t.tool_call_chunks!==void 0){let n=Le(this.tool_call_chunks,t.tool_call_chunks);n!==void 0&&n.length>0&&(e.tool_call_chunks=n)}if(this.tool_calls!==void 0||t.tool_calls!==void 0){let n=Le(this.tool_calls,t.tool_calls);n!==void 0&&n.length>0&&(e.tool_calls=n)}(this.usage_metadata!==void 0||t.usage_metadata!==void 0)&&(e.usage_metadata=lt(this.usage_metadata,t.usage_metadata));let r=this.constructor;return new r(e)}static isInstance(t){return super.isInstance(t)&&t.type==="ai"}static[Symbol.hasInstance](t){return this.isInstance(t)}};var Ui="ffffffff-ffff-ffff-ffff-ffffffffffff";var ji="00000000-0000-0000-0000-000000000000";var Di=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function me(t){return typeof t=="string"&&Di.test(t)}function Te(t){if(!me(t))throw TypeError("Invalid UUID");let e;return Uint8Array.of((e=parseInt(t.slice(0,8),16))>>>24,e>>>16&255,e>>>8&255,e&255,(e=parseInt(t.slice(9,13),16))>>>8,e&255,(e=parseInt(t.slice(14,18),16))>>>8,e&255,(e=parseInt(t.slice(19,23),16))>>>8,e&255,(e=parseInt(t.slice(24,36),16))/1099511627776&255,e/4294967296&255,e>>>24&255,e>>>16&255,e>>>8&255,e&255)}var H=[];for(let t=0;t<256;++t)H.push((t+256).toString(16).slice(1));function te(t,e=0){return(H[t[e+0]]+H[t[e+1]]+H[t[e+2]]+H[t[e+3]]+"-"+H[t[e+4]]+H[t[e+5]]+"-"+H[t[e+6]]+H[t[e+7]]+"-"+H[t[e+8]]+H[t[e+9]]+"-"+H[t[e+10]]+H[t[e+11]]+H[t[e+12]]+H[t[e+13]]+H[t[e+14]]+H[t[e+15]]).toLowerCase()}function Bi(t,e=0){let r=te(t,e);if(!me(r))throw TypeError("Stringified UUID is invalid");return r}var qo=new Uint8Array(16);function _e(){return crypto.getRandomValues(qo)}var qe={};function pt(t,e,r){let n,i=t?._v6??!1;if(t){let a=Object.keys(t);a.length===1&&a[0]==="_v6"&&(t=void 0)}if(t)n=Hi(t.random??t.rng?.()??_e(),t.msecs,t.nsecs,t.clockseq,t.node,e,r);else{let a=Date.now(),s=_e();Ko(qe,a,s),n=Hi(s,qe.msecs,qe.nsecs,i?void 0:qe.clockseq,i?void 0:qe.node,e,r)}return e??te(n)}function Ko(t,e,r){return t.msecs??=-1/0,t.nsecs??=0,e===t.msecs?(t.nsecs++,t.nsecs>=1e4&&(t.node=void 0,t.nsecs=0)):e>t.msecs?t.nsecs=0:e<t.msecs&&(t.node=void 0),t.node||(t.node=r.slice(10,16),t.node[0]|=1,t.clockseq=(r[8]<<8|r[9])&16383),t.msecs=e,t}function Hi(t,e,r,n,i,a,s=0){if(t.length<16)throw new Error("Random bytes length must be >= 16");if(!a)a=new Uint8Array(16),s=0;else if(s<0||s+16>a.length)throw new RangeError(`UUID byte range ${s}:${s+15} is out of buffer bounds`);e??=Date.now(),r??=0,n??=(t[8]<<8|t[9])&16383,i??=t.slice(10,16),e+=122192928e5;let o=((e&268435455)*1e4+r)%4294967296;a[s++]=o>>>24&255,a[s++]=o>>>16&255,a[s++]=o>>>8&255,a[s++]=o&255;let c=e/4294967296*1e4&268435455;a[s++]=c>>>8&255,a[s++]=c&255,a[s++]=c>>>24&15|16,a[s++]=c>>>16&255,a[s++]=n>>>8|128,a[s++]=n&255;for(let u=0;u<6;++u)a[s++]=i[u];return a}function Fi(t,e,r){return!e&&!t&&crypto.randomUUID?crypto.randomUUID():Jo(t,e,r)}function Jo(t,e,r){t=t||{};let n=t.random??t.rng?.()??_e();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,e){if(r=r||0,r<0||r+16>e.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let i=0;i<16;++i)e[r+i]=n[i];return e}return te(n)}function Wo(t,e,r,n){switch(t){case 0:return e&r^~e&n;case 1:return e^r^n;case 2:return e&r^e&n^r&n;case 3:return e^r^n}}function ur(t,e){return t<<e|t>>>32-e}function Gi(t){let e=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520],n=new Uint8Array(t.length+1);n.set(t),n[t.length]=128,t=n;let i=t.length/4+2,a=Math.ceil(i/16),s=new Array(a);for(let o=0;o<a;++o){let c=new Uint32Array(16);for(let u=0;u<16;++u)c[u]=t[o*64+u*4]<<24|t[o*64+u*4+1]<<16|t[o*64+u*4+2]<<8|t[o*64+u*4+3];s[o]=c}s[a-1][14]=(t.length-1)*8/2**32,s[a-1][14]=Math.floor(s[a-1][14]),s[a-1][15]=(t.length-1)*8&4294967295;for(let o=0;o<a;++o){let c=new Uint32Array(80);for(let m=0;m<16;++m)c[m]=s[o][m];for(let m=16;m<80;++m)c[m]=ur(c[m-3]^c[m-8]^c[m-14]^c[m-16],1);let u=r[0],l=r[1],d=r[2],f=r[3],h=r[4];for(let m=0;m<80;++m){let y=Math.floor(m/20),v=ur(u,5)+Wo(y,l,d,f)+h+e[y]+c[m]>>>0;h=f,f=d,d=ur(l,30)>>>0,l=u,u=v}r[0]=r[0]+u>>>0,r[1]=r[1]+l>>>0,r[2]=r[2]+d>>>0,r[3]=r[3]+f>>>0,r[4]=r[4]+h>>>0}return Uint8Array.of(r[0]>>24,r[0]>>16,r[0]>>8,r[0],r[1]>>24,r[1]>>16,r[1]>>8,r[1],r[2]>>24,r[2]>>16,r[2]>>8,r[2],r[3]>>24,r[3]>>16,r[3]>>8,r[3],r[4]>>24,r[4]>>16,r[4]>>8,r[4])}function Xo(t){t=unescape(encodeURIComponent(t));let e=new Uint8Array(t.length);for(let r=0;r<t.length;++r)e[r]=t.charCodeAt(r);return e}var zi="6ba7b810-9dad-11d1-80b4-00c04fd430c8",Vi="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function qi(t,e,r,n,i,a){let s=typeof r=="string"?Xo(r):r,o=typeof n=="string"?Te(n):n;if(typeof n=="string"&&(n=Te(n)),n?.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let c=new Uint8Array(16+s.length);if(c.set(o),c.set(s,o.length),c=e(c),c[6]=c[6]&15|t,c[8]=c[8]&63|128,i){if(a??=0,a<0||a+16>i.length)throw new RangeError(`UUID byte range ${a}:${a+15} is out of buffer bounds`);for(let u=0;u<16;++u)i[a+u]=c[u];return i}return te(c)}function mt(t,e,r,n){return qi(80,Gi,t,e,r,n)}mt.DNS=zi;mt.URL=Vi;function Ki(t){let e=Qo(typeof t=="string"?Te(t):t);return typeof t=="string"?te(e):e}function Qo(t){return Uint8Array.of((t[6]&15)<<4|t[7]>>4&15,(t[7]&15)<<4|(t[4]&240)>>4,(t[4]&15)<<4|(t[5]&240)>>4,(t[5]&15)<<4|(t[0]&240)>>4,(t[0]&15)<<4|(t[1]&240)>>4,(t[1]&15)<<4|(t[2]&240)>>4,96|t[2]&15,t[3],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15])}function Ji(t,e,r){t??={},r??=0;let n=pt({...t,_v6:!0},new Uint8Array(16));if(n=Ki(n),e){if(r<0||r+16>e.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let i=0;i<16;i++)e[r+i]=n[i];return e}return te(n)}var dr={};function Xi(t,e,r){let n;if(t)n=Wi(t.random??t.rng?.()??_e(),t.msecs,t.seq,e,r);else{let i=Date.now(),a=_e();Yo(dr,i,a),n=Wi(a,dr.msecs,dr.seq,e,r)}return e??te(n)}function Yo(t,e,r){return t.msecs??=-1/0,t.seq??=0,e>t.msecs?(t.seq=r[6]<<23|r[7]<<16|r[8]<<8|r[9],t.msecs=e):(t.seq=t.seq+1|0,t.seq===0&&t.msecs++),t}function Wi(t,e,r,n,i=0){if(t.length<16)throw new Error("Random bytes length must be >= 16");if(!n)n=new Uint8Array(16),i=0;else if(i<0||i+16>n.length)throw new RangeError(`UUID byte range ${i}:${i+15} is out of buffer bounds`);return e??=Date.now(),r??=t[6]*127<<24|t[7]<<16|t[8]<<8|t[9],n[i++]=e/1099511627776&255,n[i++]=e/4294967296&255,n[i++]=e/16777216&255,n[i++]=e/65536&255,n[i++]=e/256&255,n[i++]=e&255,n[i++]=112|r>>>28&15,n[i++]=r>>>20&255,n[i++]=128|r>>>14&63,n[i++]=r>>>6&255,n[i++]=r<<2&255|t[10]&3,n[i++]=t[11],n[i++]=t[12],n[i++]=t[13],n[i++]=t[14],n[i++]=t[15],n}function Qi(t){if(!me(t))throw TypeError("Invalid UUID");return parseInt(t.slice(14,15),16)}var Jh=P({MAX:()=>Zo,NIL:()=>ec,parse:()=>tc,stringify:()=>rc,v1:()=>nc,v4:()=>ic,v5:()=>ac,v6:()=>sc,v7:()=>se,validate:()=>oc,version:()=>cc}),Zo=Ui,ec=ji,tc=Te,rc=Bi,nc=pt,ic=Fi,ac=mt,sc=Ji,se=Xi,oc=me,cc=Qi;var Qh=P({getEnv:()=>ra,getEnvironmentVariable:()=>ie,getRuntimeEnvironment:()=>hr,isBrowser:()=>Yi,isDeno:()=>_t,isJsDom:()=>ea,isNode:()=>ta,isWebWorker:()=>Zi}),Yi=()=>typeof window<"u"&&typeof window.document<"u",Zi=()=>typeof globalThis=="object"&&globalThis.constructor&&globalThis.constructor.name==="DedicatedWorkerGlobalScope",ea=()=>typeof window<"u"&&window.name==="nodejs"||typeof navigator<"u"&&navigator.userAgent.includes("jsdom"),_t=()=>typeof Deno<"u",ta=()=>typeof process<"u"&&typeof process.versions<"u"&&typeof process.versions.node<"u"&&!_t(),ra=()=>{let t;return Yi()?t="browser":ta()?t="node":Zi()?t="webworker":ea()?t="jsdom":_t()?t="deno":t="other",t},fr;function hr(){return fr===void 0&&(fr={library:"langchain-js",runtime:ra()}),fr}function ie(t){try{return typeof process<"u"?process.env?.[t]:_t()?Deno?.env.get(t):void 0}catch{return}}var np=P({BaseCallbackHandler:()=>Ae,callbackHandlerPrefersChatModelStreamEvents:()=>dc,callbackHandlerPrefersStreaming:()=>uc,isBaseCallbackHandler:()=>pr}),lc=class{};function uc(t){return"lc_prefer_streaming"in t&&t.lc_prefer_streaming}function dc(t){return"lc_prefer_chat_model_stream_events"in t&&t.lc_prefer_chat_model_stream_events}var Ae=class extends lc{lc_serializable=!1;get lc_namespace(){return["langchain_core","callbacks",this.name]}get lc_secrets(){}get lc_attributes(){}get lc_aliases(){}get lc_serializable_keys(){}static lc_name(){return this.name}get lc_id(){return[...this.lc_namespace,at(this.constructor)]}lc_kwargs;ignoreLLM=!1;ignoreChain=!1;ignoreAgent=!1;ignoreRetriever=!1;ignoreCustomEvent=!1;raiseError=!1;awaitHandlers=ie("LANGCHAIN_CALLBACKS_BACKGROUND")==="false";constructor(t){super(),this.lc_kwargs=t||{},t&&(this.ignoreLLM=t.ignoreLLM??this.ignoreLLM,this.ignoreChain=t.ignoreChain??this.ignoreChain,this.ignoreAgent=t.ignoreAgent??this.ignoreAgent,this.ignoreRetriever=t.ignoreRetriever??this.ignoreRetriever,this.ignoreCustomEvent=t.ignoreCustomEvent??this.ignoreCustomEvent,this.raiseError=t.raiseError??this.raiseError,this.awaitHandlers=this.raiseError||(t._awaitHandler??this.awaitHandlers))}copy(){return new this.constructor(this)}toJSON(){return ke.prototype.toJSON.call(this)}toJSONNotImplemented(){return ke.prototype.toJSONNotImplemented.call(this)}static fromMethods(t){class e extends Ae{name=se();constructor(){super(),Object.assign(this,t)}}return new e}},pr=t=>{let e=t;return e!==void 0&&typeof e.copy=="function"&&typeof e.name=="string"&&typeof e.awaitHandlers=="boolean"};var na=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function fc(t){return typeof t=="string"&&na.test(t)}var Ke=fc;function hc(t){if(!Ke(t))throw TypeError("Invalid UUID");let e;return Uint8Array.of((e=parseInt(t.slice(0,8),16))>>>24,e>>>16&255,e>>>8&255,e&255,(e=parseInt(t.slice(9,13),16))>>>8,e&255,(e=parseInt(t.slice(14,18),16))>>>8,e&255,(e=parseInt(t.slice(19,23),16))>>>8,e&255,(e=parseInt(t.slice(24,36),16))/1099511627776&255,e/4294967296&255,e>>>24&255,e>>>16&255,e>>>8&255,e&255)}var gt=hc;var F=[];for(let t=0;t<256;++t)F.push((t+256).toString(16).slice(1));function Ue(t,e=0){return(F[t[e+0]]+F[t[e+1]]+F[t[e+2]]+F[t[e+3]]+"-"+F[t[e+4]]+F[t[e+5]]+"-"+F[t[e+6]]+F[t[e+7]]+"-"+F[t[e+8]]+F[t[e+9]]+"-"+F[t[e+10]]+F[t[e+11]]+F[t[e+12]]+F[t[e+13]]+F[t[e+14]]+F[t[e+15]]).toLowerCase()}var pc=new Uint8Array(16);function je(){return crypto.getRandomValues(pc)}function mc(t,e,r){return!e&&!t&&crypto.randomUUID?crypto.randomUUID():_c(t,e,r)}function _c(t,e,r){t=t||{};let n=t.random??t.rng?.()??je();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,e){if(r=r||0,r<0||r+16>e.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let i=0;i<16;++i)e[r+i]=n[i];return e}return Ue(n)}var Ie=mc;function gc(t,e,r,n){switch(t){case 0:return e&r^~e&n;case 1:return e^r^n;case 2:return e&r^e&n^r&n;case 3:return e^r^n}}function mr(t,e){return t<<e|t>>>32-e}function yc(t){let e=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520],n=new Uint8Array(t.length+1);n.set(t),n[t.length]=128,t=n;let i=t.length/4+2,a=Math.ceil(i/16),s=new Array(a);for(let o=0;o<a;++o){let c=new Uint32Array(16);for(let u=0;u<16;++u)c[u]=t[o*64+u*4]<<24|t[o*64+u*4+1]<<16|t[o*64+u*4+2]<<8|t[o*64+u*4+3];s[o]=c}s[a-1][14]=(t.length-1)*8/2**32,s[a-1][14]=Math.floor(s[a-1][14]),s[a-1][15]=(t.length-1)*8&4294967295;for(let o=0;o<a;++o){let c=new Uint32Array(80);for(let m=0;m<16;++m)c[m]=s[o][m];for(let m=16;m<80;++m)c[m]=mr(c[m-3]^c[m-8]^c[m-14]^c[m-16],1);let u=r[0],l=r[1],d=r[2],f=r[3],h=r[4];for(let m=0;m<80;++m){let y=Math.floor(m/20),v=mr(u,5)+gc(y,l,d,f)+h+e[y]+c[m]>>>0;h=f,f=d,d=mr(l,30)>>>0,l=u,u=v}r[0]=r[0]+u>>>0,r[1]=r[1]+l>>>0,r[2]=r[2]+d>>>0,r[3]=r[3]+f>>>0,r[4]=r[4]+h>>>0}return Uint8Array.of(r[0]>>24,r[0]>>16,r[0]>>8,r[0],r[1]>>24,r[1]>>16,r[1]>>8,r[1],r[2]>>24,r[2]>>16,r[2]>>8,r[2],r[3]>>24,r[3]>>16,r[3]>>8,r[3],r[4]>>24,r[4]>>16,r[4]>>8,r[4])}var ia=yc;function wc(t){t=unescape(encodeURIComponent(t));let e=new Uint8Array(t.length);for(let r=0;r<t.length;++r)e[r]=t.charCodeAt(r);return e}var _r="6ba7b810-9dad-11d1-80b4-00c04fd430c8",gr="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function yr(t,e,r,n,i,a){let s=typeof r=="string"?wc(r):r,o=typeof n=="string"?gt(n):n;if(typeof n=="string"&&(n=gt(n)),n?.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let c=new Uint8Array(16+s.length);if(c.set(o),c.set(s,o.length),c=e(c),c[6]=c[6]&15|t,c[8]=c[8]&63|128,i){if(a??=0,a<0||a+16>i.length)throw new RangeError(`UUID byte range ${a}:${a+15} is out of buffer bounds`);for(let u=0;u<16;++u)i[a+u]=c[u];return i}return Ue(c)}function wr(t,e,r,n){return yr(80,ia,t,e,r,n)}wr.DNS=_r;wr.URL=gr;var br=wr;var Er={};function bc(t,e,r){let n;if(t)n=aa(t.random??t.rng?.()??je(),t.msecs,t.seq,e,r);else{let i=Date.now(),a=je();Ec(Er,i,a),n=aa(a,Er.msecs,Er.seq,e,r)}return e??Ue(n)}function Ec(t,e,r){return t.msecs??=-1/0,t.seq??=0,e>t.msecs?(t.seq=r[6]<<23|r[7]<<16|r[8]<<8|r[9],t.msecs=e):(t.seq=t.seq+1|0,t.seq===0&&t.msecs++),t}function aa(t,e,r,n,i=0){if(t.length<16)throw new Error("Random bytes length must be >= 16");if(!n)n=new Uint8Array(16),i=0;else if(i<0||i+16>n.length)throw new RangeError(`UUID byte range ${i}:${i+15} is out of buffer bounds`);return e??=Date.now(),r??=t[6]*127<<24|t[7]<<16|t[8]<<8|t[9],n[i++]=e/1099511627776&255,n[i++]=e/4294967296&255,n[i++]=e/16777216&255,n[i++]=e/65536&255,n[i++]=e/256&255,n[i++]=e&255,n[i++]=112|r>>>28&15,n[i++]=r>>>20&255,n[i++]=128|r>>>14&63,n[i++]=r>>>6&255,n[i++]=r<<2&255|t[10]&3,n[i++]=t[11],n[i++]=t[12],n[i++]=t[13],n[i++]=t[14],n[i++]=t[15],n}var De=bc;var sa="gen_ai.operation.name",oa="gen_ai.system",vr="gen_ai.request.model",ca="gen_ai.response.model",Sr="gen_ai.usage.input_tokens",xr="gen_ai.usage.output_tokens",Tr="gen_ai.usage.total_tokens",la="gen_ai.request.max_tokens",ua="gen_ai.request.temperature",da="gen_ai.request.top_p",fa="gen_ai.request.frequency_penalty",ha="gen_ai.request.presence_penalty",pa="gen_ai.response.finish_reasons",ma="gen_ai.prompt",_a="gen_ai.completion",ga="gen_ai.request.extra_query",ya="gen_ai.request.extra_body",wa="gen_ai.serialized.name",ba="gen_ai.serialized.signature",Ea="gen_ai.serialized.doc",va="gen_ai.response.id",Sa="gen_ai.response.service_tier",xa="gen_ai.response.system_fingerprint",Ta="gen_ai.usage.input_token_details",Aa="gen_ai.usage.output_token_details",Ia="langsmith.trace.session_id",Ca="langsmith.trace.session_name",Oa="langsmith.span.kind",Ra="langsmith.trace.name",Ma="langsmith.metadata",Ar="langsmith.span.tags";var Na="langsmith.request.streaming",Pa="langsmith.request.headers";var Ir="langsmith.usage_metadata";var xc=(...t)=>fetch(...t),Tc,ka=Symbol.for("ls:fetch_implementation");var La=()=>globalThis[ka]===void 0?!0:Tc??!1,$a=t=>async(...e)=>{if(t||R("DEBUG")==="true"){let[n,i]=e;console.log(`\u2192 ${i?.method||"GET"} ${n}`)}let r=await(globalThis[ka]??xc)(...e);return(t||R("DEBUG")==="true")&&console.log(`\u2190 ${r.status} ${r.statusText} ${r.url}`),r};var Je=()=>R("PROJECT")??D("LANGCHAIN_SESSION")??"default";var Ua={};function Ce(t){Ua[t]||(console.warn(t),Ua[t]=!0)}var _=t=>BigInt(t),Ha=_("0x9E3779B1"),Fa=_("0x85EBCA77"),Ac=_("0xC2B2AE3D"),ge=_("0x9E3779B185EBCA87"),Oe=_("0xC2B2AE3D27D4EB4F"),Ga=_("0x165667B19E3779F9"),Mr=_("0x85EBCA77C2B2AE63"),Ic=_("0x27D4EB2F165667C5"),Cc=_("0x165667919E3779F9"),Oc=_("0x9FB21C651E98DF25");function Rc(t){let e=new Uint8Array(t.length/2);for(let r=0;r<t.length;r+=2)e[r/2]=parseInt(t.substring(r,r+2),16);return e}var oe=Rc("b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e"),He=(_(1)<<_(128))-_(1),I=(_(1)<<_(64))-_(1),Et=(_(1)<<_(32))-_(1),de=64,za=de/8,Mc=8,yt=4;function O(t,e=0){return new Uint8Array(t.buffer,t.byteOffset+e,t.length-e)}function M(t,e=0){return new DataView(t.buffer,t.byteOffset+e).getBigUint64(0,!0)}function Be(t,e=0){return new DataView(t.buffer,t.byteOffset+e).getUint32(0,!0)}function Cr(t,e=0){return t[e]}var Nc=t=>(t&_(255))<<_(56)|(t&_(65280))<<_(40)|(t&_(16711680))<<_(24)|(t&_(4278190080))<<_(8)|(t&_(0xff00000000))>>_(8)|(t&_(0xff0000000000))>>_(24)|(t&_(0xff000000000000))>>_(40)|(t&_(0xff00000000000000))>>_(56),Pc=t=>(t=(t&_(65535))<<_(16)|(t&_(4294901760))>>_(16),t=(t&_(16711935))<<_(8)|(t&_(4278255360))>>_(8),t),kc=(t,e)=>(t&Et)*(e&Et)&I,Fe=t=>{if(!t)throw new Error("Assert failed")};function Lc(t,e){return(t<<e|t>>_(32)-e)&Et}function Va(t,e,r){for(let n=0;n<za;n++){let i=M(e,n*8),a=i^M(r,n*8);t[n^1]+=i,t[n]+=kc(a,a>>_(32))}return t}function ja(t,e,r,n){for(let i=0;i<n;i++)Va(t,O(e,i*de),O(r,i*8));return t}function $c(t,e){for(let r=0;r<za;r++){let n=M(e,r*8),i=t[r];i=Or(i,_(47)),i^=n,i*=Ha,t[r]=i&I}return t}function wt(t,e){return qa(t[0]^M(e,0),t[1]^M(e,Mc))}function Da(t,e,r){let n=r;return n+=wt(t.slice(0),O(e,0*yt)),n+=wt(t.slice(2),O(e,4*yt)),n+=wt(t.slice(4),O(e,8*yt)),n+=wt(t.slice(6),O(e,12*yt)),ce(n&I)}function Uc(t,e,r,n,i){let a=Math.floor((r.byteLength-de)/8),s=de*a,o=Math.floor((e.byteLength-1)/s);for(let c=0;c<o;c++)t=ja(t,O(e,c*s),r,a),t=i(t,O(r,r.byteLength-de));{let c=Math.floor((e.byteLength-1-s*o)/de);t=ja(t,O(e,o*s),r,c),t=n(t,O(e,e.byteLength-de),O(r,r.byteLength-de-7))}return t}function jc(t,e,r){let n=new BigUint64Array([Ac,ge,Oe,Ga,Mr,Fa,Ic,Ha]);Fe(t.length>128),n=Uc(n,t,e,Va,$c),Fe(n.length*8==64);{let i=Da(n,O(e,11),_(t.byteLength)*ge&I);return Da(n,O(e,e.byteLength-de-11),~(_(t.byteLength)*Oe)&I)<<_(64)|i}}function qa(t,e){let r=t*e&He;return r&I^r>>_(64)}function Ba(t,e,r){return qa((M(t,0)^M(e,0)+r)&I,(M(t,8)^M(e,8)-r)&I)}function bt(t,e,r,n,i){let a=t&I,s=t>>_(64)&I;return a+=Ba(e,n,i),a^=M(r,0)+M(r,8),a&=I,s+=Ba(r,O(n,16),i),s^=M(e,0)+M(e,8),s&=I,s<<_(64)|a}function ce(t){return t^=t>>_(37),t*=Cc,t&=I,t^=t>>_(32),t}function vt(t){return t^=t>>_(33),t*=Oe,t&=I,t^=t>>_(29),t*=Ga,t&=I,t^=t>>_(32),t}function Dc(t,e,r){let n=t.byteLength;Fe(n>0&&n<=3);let i=_(Cr(t,n-1))|_(n<<8)|_(Cr(t,0)<<16)|_(Cr(t,n>>1)<<24),a=(_(Be(e,0))^_(Be(e,4)))+r,s=(i^a)&I,o=(_(Be(e,8))^_(Be(e,12)))-r,c=(Lc(Pc(i),_(13))^o)&I;return(vt(c)&I)<<_(64)|vt(s)}function Or(t,e){return t^t>>e}function Bc(t,e,r){let n=t.byteLength;Fe(n>=4&&n<=8);{let i=Be(t,0),a=Be(t,n-4),s=_(i)|_(a)<<_(32),o=(M(e,16)^M(e,24))+r&I,u=(s^o)*(ge+(_(n)<<_(2)))&He;return u+=(u&I)<<_(65),u&=He,u^=u>>_(67),Or(Or(u&I,_(35))*Oc&I,_(28))|ce(u>>_(64))<<_(64)}}function Hc(t,e,r){let n=t.byteLength;Fe(n>=9&&n<=16);{let i=(M(e,32)^M(e,40))+r&I,a=(M(e,48)^M(e,56))-r&I,s=M(t),o=M(t,n-8),c=(s^o^i)*ge,u=(c&I)+(_(n-1)<<_(54));c=c&(He^I)|u,o^=a,c+=o+(o&Et)*(Fa-_(1))<<_(64),c&=He,c^=Nc(c>>_(64));let l=(c&I)*Oe;return l+=(c>>_(64))*Oe<<_(64),l&=He,ce(l&I)|ce(l>>_(64))<<_(64)}}function Fc(t,e){let r=t.byteLength;return Fe(r<=16),r>8?Hc(t,oe,e):r>=4?Bc(t,oe,e):r>0?Dc(t,oe,e):vt(e^M(oe,64)^M(oe,72))|vt(e^M(oe,80)^M(oe,88))<<_(64)}function Rr(t){return~t+_(1)&I}function Gc(t,e,r){let n=_(t.byteLength)*ge&I,i=_(t.byteLength-1)/_(32);for(;i>=0;){let o=Number(i);n=bt(n,O(t,16*o),O(t,t.byteLength-16*(o+1)),O(e,32*o),r),i--}let a=n+(n>>_(64))&I;a=ce(a);let s=(n&I)*ge+(n>>_(64))*Mr+(_(t.byteLength)-r&I)*Oe;return s&=I,s=Rr(ce(s)),a|s<<_(64)}function zc(t,e,r){let n=_(t.byteLength)*ge&I;for(let s=32;s<160;s+=32)n=bt(n,O(t,s-32),O(t,s-16),O(e,s-32),r);n=ce(n&I)|ce(n>>_(64))<<_(64);for(let s=160;s<=t.byteLength;s+=32)n=bt(n,O(t,s-32),O(t,s-16),O(e,3+s-160),r);n=bt(n,O(t,t.byteLength-16),O(t,t.byteLength-32),O(e,103),Rr(r));let i=n+(n>>_(64))&I;i=ce(i);let a=(n&I)*ge+(n>>_(64))*Mr+(_(t.byteLength)-r&I)*Oe;return a&=I,a=Rr(ce(a)),i|a<<_(64)}function Ka(t,e=_(0)){let r=t.byteLength;return r<=16?Fc(t,e):r<=128?Gc(t,oe,e):r<=240?zc(t,oe,e):jc(t,oe,e)}function Ja(t){let e=new Uint8Array(16),r=new DataView(e.buffer),n=t&I,i=t>>_(64);return r.setBigUint64(0,i,!1),r.setBigUint64(8,n,!1),e}var Wa=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function A(t,e){if(!Wa.test(t)){let r=e!==void 0?`Invalid UUID for ${e}: ${t}`:`Invalid UUID: ${t}`;throw new Error(r)}return t}function St(t){let e=typeof t=="string"?Date.parse(t):t;return De({msecs:e,seq:0})}function Vc(t){if(!Wa.test(t))return null;let e=t[14];return parseInt(e,16)}function qc(t){let e=t.replace(/-/g,""),r=new Uint8Array(16);for(let n=0;n<16;n++)r[n]=parseInt(e.slice(n*2,n*2+2),16);return r}function Kc(t){let e=Array.from(t).map(r=>r.toString(16).padStart(2,"0")).join("");return`${e.slice(0,8)}-${e.slice(8,12)}-${e.slice(12,16)}-${e.slice(16,20)}-${e.slice(20)}`}var Jc=new TextEncoder;function Wc(t){let e=Jc.encode(t),r=Ka(e);return Ja(r)}function We(t,e){let r=`${t}:${e}`,n=Wc(r),i=new Uint8Array(16);if(Vc(t)===7){let s=qc(t);i.set(s.slice(0,6),0)}else{let s=Date.now();i[0]=s/1099511627776&255,i[1]=s/4294967296&255,i[2]=s/16777216&255,i[3]=s/65536&255,i[4]=s/256&255,i[5]=s&255}return i[6]=112|n[0]&15,i[7]=n[1],i[8]=128|n[2]&63,i.set(n.slice(3,10),9),Kc(i)}var Re={join:(...t)=>t.join("/"),dirname:t=>t.split("/").slice(0,-1).join("/")};async function Xa(t){}async function xt(t,e){}async function Qa(t){return[]}async function Ya(t){return{size:0}}function Ge(t){return!1}function Tt(t){return""}function Xc(t,e){return e===null?!1:Date.now()-t.createdAt>e*1e3}var At=class{constructor(e={}){Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"ttlSeconds",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"refreshIntervalSeconds",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"refreshTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_metrics",{enumerable:!0,configurable:!0,writable:!0,value:{hits:0,misses:0,refreshes:0,refreshErrors:0}}),this.configure(e)}get metrics(){return{...this._metrics}}get totalRequests(){return this._metrics.hits+this._metrics.misses}get hitRate(){let e=this.totalRequests;return e>0?this._metrics.hits/e:0}resetMetrics(){this._metrics={hits:0,misses:0,refreshes:0,refreshErrors:0}}get(e,r){if(this.maxSize===0)return;let n=this.cache.get(e);if(!n){this._metrics.misses+=1;return}return this.cache.delete(e),this.cache.set(e,{...n,refreshFunc:r}),this._metrics.hits+=1,n.value}set(e,r,n){if(this.maxSize===0)return;if(this.refreshTimer===void 0&&this.startRefreshLoop(),!this.cache.has(e)&&this.cache.size>=this.maxSize){let a=this.cache.keys().next().value;a!==void 0&&this.cache.delete(a)}let i={value:r,createdAt:Date.now(),refreshFunc:n};this.cache.delete(e),this.cache.set(e,i)}invalidate(e){this.cache.delete(e)}clear(){this.cache.clear()}get size(){return this.cache.size}stop(){this.refreshTimer&&(clearInterval(this.refreshTimer),this.refreshTimer=void 0)}dump(e){let r={};for(let[a,s]of this.cache.entries())r[a]=s.value;let n=Re.dirname(e);Ge(n)||void 0;let i=`${e}.tmp`;try{JSON.stringify({entries:r},null,2)}catch(a){throw Ge(i)&&void 0,a}}load(e){if(!Ge(e))return 0;let r;try{let a=Tt(e);r=JSON.parse(a).entries??null}catch{return 0}if(!r)return 0;let n=0,i=Date.now();for(let[a,s]of Object.entries(r)){if(this.cache.size>=this.maxSize)break;let o={value:s,createdAt:i};this.cache.set(a,o),n+=1}return n}startRefreshLoop(){this.stop(),this.ttlSeconds!==null&&(this.refreshTimer=setInterval(()=>{this.refreshStaleEntries().catch(e=>{console.warn("Unexpected error in cache refresh loop:",e)})},this.refreshIntervalSeconds*1e3),this.refreshTimer.unref&&this.refreshTimer.unref())}getStaleEntries(){let e=[];for(let[r,n]of this.cache.entries())Xc(n,this.ttlSeconds)&&e.push([r,n]);return e}async refreshStaleEntries(){let e=this.getStaleEntries();if(e.length!==0){for(let[r,n]of e)if(n.refreshFunc!==void 0)try{let i=await n.refreshFunc();this.set(r,i,n.refreshFunc),this._metrics.refreshes+=1}catch(i){this._metrics.refreshErrors+=1,console.warn(`Failed to refresh cache entry ${r}:`,i)}}}configure(e){this.stop(),this.refreshIntervalSeconds=e.refreshIntervalSeconds??60,this.maxSize=e.maxSize??100,this.ttlSeconds=e.ttlSeconds??300}},It=new At;var Ct="0.6.3";var le,Qc=()=>typeof window<"u"&&typeof window.document<"u",Yc=()=>typeof globalThis=="object"&&globalThis.constructor&&globalThis.constructor.name==="DedicatedWorkerGlobalScope",Zc=()=>typeof window<"u"&&window.name==="nodejs"||typeof navigator<"u"&&navigator.userAgent.includes("jsdom"),rs=()=>typeof Deno<"u",el=()=>typeof process<"u"&&typeof process.versions<"u"&&typeof process.versions.node<"u"&&!rs(),Xe=()=>le||(typeof Bun<"u"?le="bun":Qc()?le="browser":el()?le="node":Yc()?le="webworker":Zc()?le="jsdom":rs()?le="deno":le="other",le),Nr;function Ot(){if(Nr===void 0){let t=Xe(),e=rl();Nr={library:"langsmith",runtime:t,sdk:"langsmith-js",sdk_version:Ct,...e}}return Nr}function kr(){let t=tl(),e={},r=["LANGCHAIN_API_KEY","LANGCHAIN_ENDPOINT","LANGCHAIN_TRACING_V2","LANGCHAIN_PROJECT","LANGCHAIN_SESSION","LANGSMITH_API_KEY","LANGSMITH_ENDPOINT","LANGSMITH_TRACING_V2","LANGSMITH_CONFIG_FILE","LANGSMITH_PROJECT","LANGSMITH_SESSION"];for(let[n,i]of Object.entries(t))typeof i=="string"&&!r.includes(n)&&!n.toLowerCase().includes("key")&&!n.toLowerCase().includes("secret")&&!n.toLowerCase().includes("token")&&(n==="LANGCHAIN_REVISION_ID"?e.revision_id=i:e[n]=i);return e}function tl(){let t={};try{if(typeof process<"u"&&process.env)for(let[e,r]of Object.entries(process.env))(e.startsWith("LANGCHAIN_")||e.startsWith("LANGSMITH_"))&&r!=null&&((e.toLowerCase().includes("key")||e.toLowerCase().includes("secret")||e.toLowerCase().includes("token"))&&typeof r=="string"?t[e]=r.slice(0,2)+"*".repeat(r.length-4)+r.slice(-2):t[e]=r)}catch{}return t}function D(t){try{return typeof process<"u"?process.env?.[t]:void 0}catch{return}}function R(t){return D(`LANGSMITH_${t}`)||D(`LANGCHAIN_${t}`)}var Pr;function rl(){if(Pr!==void 0)return Pr;let t=["VERCEL_GIT_COMMIT_SHA","NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA","COMMIT_REF","RENDER_GIT_COMMIT","CI_COMMIT_SHA","CIRCLE_SHA1","CF_PAGES_COMMIT_SHA","REACT_APP_GIT_SHA","SOURCE_VERSION","GITHUB_SHA","TRAVIS_COMMIT","GIT_COMMIT","BUILD_VCS_NUMBER","bamboo_planRepository_revision","Build.SourceVersion","BITBUCKET_COMMIT","DRONE_COMMIT_SHA","SEMAPHORE_GIT_SHA","BUILDKITE_COMMIT"],e={};for(let r of t){let n=D(r);n!==void 0&&(e[r]=n)}return Pr=e,e}function es(){return D("OTEL_ENABLED")==="true"||R("OTEL_ENABLED")==="true"}var ts=new Set(["langsmith","otel"]);function Rt(t){if(t!==void 0)return t;let e=R("TRACING_MODE");if(e!==void 0&&e!==""){let r=e.toLowerCase();if(!ts.has(r))throw new Error(`Invalid LANGSMITH_TRACING_MODE=${JSON.stringify(e)}. Must be one of: ${[...ts].sort().join(", ")}`);return es()&&console.warn("Both LANGSMITH_TRACING_MODE and the legacy OTEL_ENABLED / LANGSMITH_OTEL_ENABLED env vars are set. LANGSMITH_TRACING_MODE takes precedence."),r}return es()?"otel":"langsmith"}var Ur=class{constructor(){Object.defineProperty(this,"hasWarned",{enumerable:!0,configurable:!0,writable:!0,value:!1})}startActiveSpan(e,...r){!this.hasWarned&&Rt()==="otel"&&(console.warn('OTel tracing mode is active (via LANGSMITH_TRACING_MODE, OTEL_ENABLED, or LANGSMITH_OTEL_ENABLED), but the required OTEL instances have not been initialized. Please add:\n```\nimport { initializeOTEL } from "langsmith/experimental/otel/setup";\ninitializeOTEL();\n```\nat the beginning of your code.'),this.hasWarned=!0);let n;if(r.length===1&&typeof r[0]=="function"?n=r[0]:r.length===2&&typeof r[1]=="function"?n=r[1]:r.length===3&&typeof r[2]=="function"&&(n=r[2]),typeof n=="function")return n()}},jr=class{constructor(){Object.defineProperty(this,"mockTracer",{enumerable:!0,configurable:!0,writable:!0,value:new Ur})}getTracer(e,r){return this.mockTracer}getActiveSpan(){}setSpan(e,r){return e}getSpan(e){}setSpanContext(e,r){return e}getTracerProvider(){}setGlobalTracerProvider(e){return!1}},Dr=class{active(){return{}}with(e,r){return r()}},Lr=Symbol.for("ls:otel_trace"),$r=Symbol.for("ls:otel_context"),ns=Symbol.for("ls:otel_get_default_otlp_tracer_provider"),nl=new jr,il=new Dr,Br=class{getTraceInstance(){return globalThis[Lr]??nl}getContextInstance(){return globalThis[$r]??il}initializeGlobalInstances(e){globalThis[Lr]===void 0&&(globalThis[Lr]=e.trace),globalThis[$r]===void 0&&(globalThis[$r]=e.context)}setDefaultOTLPTracerComponents(e){globalThis[ns]=e}getDefaultOTLPTracerComponents(){return globalThis[ns]??void 0}},Hr=new Br;function Mt(){return Hr.getTraceInstance()}function is(){return Hr.getContextInstance()}function as(){return Hr.getDefaultOTLPTracerComponents()}var al={llm:"chat",tool:"execute_tool",retriever:"embeddings",embedding:"embeddings",prompt:"chat"};function sl(t){return al[t]||t}function ol(t){return typeof t=="string"||typeof t=="number"||typeof t=="boolean"}var Nt=class{constructor(){Object.defineProperty(this,"spans",{enumerable:!0,configurable:!0,writable:!0,value:new Map})}exportBatch(e,r){for(let n of e)try{if(!n.run)continue;if(n.operation==="post"){let i=this.createSpanForRun(n,n.run,r.get(n.id));i&&!n.run.end_time&&this.spans.set(n.id,i)}else this.updateSpanForRun(n,n.run)}catch(i){console.error(`Error processing operation ${n.id}:`,i)}}createSpanForRun(e,r,n){let i=n&&Mt().getSpan(n);if(i)try{return this.finishSpanSetup(i,r,e)}catch(a){console.error(`Failed to create span for run ${e.id}:`,a);return}}finishSpanSetup(e,r,n){return this.setSpanAttributes(e,r,n),r.error?(e.setStatus({code:2}),e.recordException(new Error(r.error))):e.setStatus({code:1}),r.end_time&&e.end(new Date(r.end_time)),e}updateSpanForRun(e,r){try{let n=this.spans.get(e.id);if(!n){console.debug(`No span found for run ${e.id} during update`);return}this.setSpanAttributes(n,r,e),r.error?(n.setStatus({code:2}),n.recordException(new Error(r.error))):n.setStatus({code:1});let i=r.end_time;i&&(n.end(new Date(i)),this.spans.delete(e.id))}catch(n){console.error(`Failed to update span for run ${e.id}:`,n)}}extractModelName(e){if(e.extra?.metadata){let r=e.extra.metadata;if(r.ls_model_name)return r.ls_model_name;if(r.invocation_params){let n=r.invocation_params;if(n.model)return n.model;if(n.model_name)return n.model_name}}}setSpanAttributes(e,r,n){if("run_type"in r&&r.run_type){e.setAttribute(Oa,r.run_type);let o=sl(r.run_type||"chain");e.setAttribute(sa,o)}"name"in r&&r.name&&e.setAttribute(Ra,r.name),"session_id"in r&&r.session_id&&e.setAttribute(Ia,r.session_id),"session_name"in r&&r.session_name&&e.setAttribute(Ca,r.session_name),this.setGenAiSystem(e,r);let i=this.extractModelName(r);i&&e.setAttribute(vr,i),r.extra?.metadata?.usage_metadata&&typeof r.extra.metadata.usage_metadata=="object"&&e.setAttribute(Ir,JSON.stringify(r.extra.metadata.usage_metadata)),"prompt_tokens"in r&&typeof r.prompt_tokens=="number"&&e.setAttribute(Sr,r.prompt_tokens),"completion_tokens"in r&&typeof r.completion_tokens=="number"&&e.setAttribute(xr,r.completion_tokens),"total_tokens"in r&&typeof r.total_tokens=="number"&&e.setAttribute(Tr,r.total_tokens),this.setInvocationParameters(e,r);let a=r.extra?.metadata||{};for(let[o,c]of Object.entries(a))c!=null&&e.setAttribute(`${Ma}.${o}`,ol(c)?String(c):JSON.stringify(c));let s=r.tags;if(s&&Array.isArray(s)?e.setAttribute(Ar,s.join(", ")):s&&e.setAttribute(Ar,String(s)),"serialized"in r&&typeof r.serialized=="object"){let o=r.serialized;o.name&&e.setAttribute(wa,String(o.name)),o.signature&&e.setAttribute(ba,String(o.signature)),o.doc&&e.setAttribute(Ea,String(o.doc))}this.setIOAttributes(e,n)}setGenAiSystem(e,r){let n="langchain",i=this.extractModelName(r);if(i){let a=i.toLowerCase();a.includes("anthropic")||a.startsWith("claude")?n="anthropic":a.includes("bedrock")?n="aws.bedrock":a.includes("azure")&&a.includes("openai")?n="az.ai.openai":a.includes("azure")&&a.includes("inference")?n="az.ai.inference":a.includes("cohere")?n="cohere":a.includes("deepseek")?n="deepseek":a.includes("gemini")?n="gemini":a.includes("groq")?n="groq":a.includes("watson")||a.includes("ibm")?n="ibm.watsonx.ai":a.includes("mistral")?n="mistral_ai":a.includes("gpt")||a.includes("openai")?n="openai":a.includes("perplexity")||a.includes("sonar")?n="perplexity":a.includes("vertex")?n="vertex_ai":(a.includes("xai")||a.includes("grok"))&&(n="xai")}e.setAttribute(oa,n)}setInvocationParameters(e,r){if(!r.extra?.metadata?.invocation_params)return;let n=r.extra.metadata.invocation_params;n.max_tokens!==void 0&&e.setAttribute(la,n.max_tokens),n.temperature!==void 0&&e.setAttribute(ua,n.temperature),n.top_p!==void 0&&e.setAttribute(da,n.top_p),n.frequency_penalty!==void 0&&e.setAttribute(fa,n.frequency_penalty),n.presence_penalty!==void 0&&e.setAttribute(ha,n.presence_penalty)}setIOAttributes(e,r){if(r.run.inputs)try{let n=r.run.inputs;typeof n=="object"&&n!==null&&(n.model&&Array.isArray(n.messages)&&e.setAttribute(vr,n.model),n.stream!==void 0&&e.setAttribute(Na,n.stream),n.extra_headers&&e.setAttribute(Pa,JSON.stringify(n.extra_headers)),n.extra_query&&e.setAttribute(ga,JSON.stringify(n.extra_query)),n.extra_body&&e.setAttribute(ya,JSON.stringify(n.extra_body))),e.setAttribute(ma,JSON.stringify(n))}catch(n){console.debug(`Failed to process inputs for run ${r.id}`,n)}if(r.run.outputs)try{let n=r.run.outputs,i=this.getUnifiedRunTokens(n);if(i&&(e.setAttribute(Sr,i[0]),e.setAttribute(xr,i[1]),e.setAttribute(Tr,i[0]+i[1])),n&&typeof n=="object"){if(n.model&&e.setAttribute(ca,String(n.model)),n.id&&e.setAttribute(va,n.id),n.choices&&Array.isArray(n.choices)){let a=n.choices.map(s=>s.finish_reason).filter(s=>s).map(String);a.length>0&&e.setAttribute(pa,a.join(", "))}if(n.service_tier&&e.setAttribute(Sa,n.service_tier),n.system_fingerprint&&e.setAttribute(xa,n.system_fingerprint),n.usage_metadata&&typeof n.usage_metadata=="object"){let a=n.usage_metadata;e.setAttribute(Ir,JSON.stringify(a)),a.input_token_details&&e.setAttribute(Ta,JSON.stringify(a.input_token_details)),a.output_token_details&&e.setAttribute(Aa,JSON.stringify(a.output_token_details))}}e.setAttribute(_a,JSON.stringify(n))}catch(n){console.debug(`Failed to process outputs for run ${r.id}`,n)}}getUnifiedRunTokens(e){if(!e)return null;let r=this.extractUnifiedRunTokens(e.usage_metadata);if(r)return r;let n=Object.keys(e);for(let s of n){let o=e[s];if(!(!o||typeof o!="object")&&(r=this.extractUnifiedRunTokens(o.usage_metadata),r||o.lc===1&&o.kwargs&&typeof o.kwargs=="object"&&(r=this.extractUnifiedRunTokens(o.kwargs.usage_metadata),r)))return r}let i=e.generations||[];if(!Array.isArray(i))return null;let a=Array.isArray(i[0])?i.flat():i;for(let s of a)if(typeof s=="object"&&s.message&&typeof s.message=="object"&&s.message.kwargs&&typeof s.message.kwargs=="object"&&(r=this.extractUnifiedRunTokens(s.message.kwargs.usage_metadata),r))return r;return null}extractUnifiedRunTokens(e){return!e||typeof e!="object"||typeof e.input_tokens!="number"||typeof e.output_tokens!="number"?null:[e.input_tokens,e.output_tokens]}};var cl=Object.prototype.toString,ll=t=>cl.call(t)==="[object Error]",ul=new Set(["network error","Failed to fetch","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Network request failed","fetch failed","terminated"," A network error occurred.","Network connection lost"]);function Fr(t){if(!(t&&ll(t)&&t.name==="TypeError"&&typeof t.message=="string"))return!1;let{message:r,stack:n}=t;return r==="Load failed"?n===void 0||"__sentry_captured__"in t:r.startsWith("error sending request for url")?!0:ul.has(r)}function dl(t){if(typeof t=="number"){if(t<0)throw new TypeError("Expected `retries` to be a non-negative number.");if(Number.isNaN(t))throw new TypeError("Expected `retries` to be a valid number or Infinity, got NaN.")}else if(t!==void 0)throw new TypeError("Expected `retries` to be a number or Infinity.")}function Pt(t,e,{min:r=0,allowInfinity:n=!1}={}){if(e!==void 0){if(typeof e!="number"||Number.isNaN(e))throw new TypeError(`Expected \`${t}\` to be a number${n?" or Infinity":""}.`);if(!n&&!Number.isFinite(e))throw new TypeError(`Expected \`${t}\` to be a finite number.`);if(e<r)throw new TypeError(`Expected \`${t}\` to be \u2265 ${r}.`)}}var Gr=class extends Error{constructor(e){super(),e instanceof Error?(this.originalError=e,{message:e}=e):(this.originalError=new Error(e),this.originalError.stack=this.stack),this.name="AbortError",this.message=e}};function fl(t,e){let r=Math.max(1,t+1),n=e.randomize?Math.random()+1:1,i=Math.round(n*e.minTimeout*e.factor**(r-1));return i=Math.min(i,e.maxTimeout),i}function ss(t,e){return Number.isFinite(e)?e-(performance.now()-t):e}async function hl({error:t,attemptNumber:e,retriesConsumed:r,startTime:n,options:i}){let a=t instanceof Error?t:new TypeError(`Non-error was thrown: "${t}". You should only throw errors.`);if(a instanceof Gr)throw a.originalError;let s=Number.isFinite(i.retries)?Math.max(0,i.retries-r):i.retries,o=i.maxRetryTime??Number.POSITIVE_INFINITY,c=Object.freeze({error:a,attemptNumber:e,retriesLeft:s,retriesConsumed:r});if(await i.onFailedAttempt(c),ss(n,o)<=0)throw a;let u=await i.shouldConsumeRetry(c),l=ss(n,o);if(l<=0||s<=0)throw a;if(a instanceof TypeError&&!Fr(a)){if(u)throw a;return i.signal?.throwIfAborted(),!1}if(!await i.shouldRetry(c))throw a;if(!u)return i.signal?.throwIfAborted(),!1;let d=fl(r,i),f=Math.min(d,l);return f>0&&await new Promise((h,m)=>{let y=()=>{clearTimeout(v),i.signal?.removeEventListener("abort",y),m(i.signal.reason)},v=setTimeout(()=>{i.signal?.removeEventListener("abort",y),h()},f);i.unref&&v.unref?.(),i.signal?.addEventListener("abort",y,{once:!0})}),i.signal?.throwIfAborted(),!0}async function zr(t,e={}){if(e={...e},dl(e.retries),Object.hasOwn(e,"forever"))throw new Error("The `forever` option is no longer supported. For many use-cases, you can set `retries: Infinity` instead.");e.retries??=10,e.factor??=2,e.minTimeout??=1e3,e.maxTimeout??=Number.POSITIVE_INFINITY,e.maxRetryTime??=Number.POSITIVE_INFINITY,e.randomize??=!1,e.onFailedAttempt??=()=>{},e.shouldRetry??=()=>!0,e.shouldConsumeRetry??=()=>!0,Pt("factor",e.factor,{min:0,allowInfinity:!1}),Pt("minTimeout",e.minTimeout,{min:0,allowInfinity:!1}),Pt("maxTimeout",e.maxTimeout,{min:0,allowInfinity:!0}),Pt("maxRetryTime",e.maxRetryTime,{min:0,allowInfinity:!0}),e.factor>0||(e.factor=1),e.signal?.throwIfAborted();let r=0,n=0,i=performance.now();for(;!Number.isFinite(e.retries)||n<=e.retries;){r++;try{e.signal?.throwIfAborted();let a=await t(r);return e.signal?.throwIfAborted(),a}catch(a){await hl({error:a,attemptNumber:r,retriesConsumed:n,startTime:i,options:e})&&n++}}throw new Error("Retry attempts exhausted without throwing an error.")}var jt=Sn(Qr(),1),_s="default"in jt.default?jt.default.default:jt.default;var vl=[408,425,429,500,502,503,504],Ye=class{constructor(e){Object.defineProperty(this,"maxConcurrency",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"maxRetries",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"maxQueueSizeBytes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"queue",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onFailedResponseHook",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"queueSizeBytes",{enumerable:!0,configurable:!0,writable:!0,value:0}),this.maxConcurrency=e.maxConcurrency??1/0,this.maxRetries=e.maxRetries??6,this.maxQueueSizeBytes=e.maxQueueSizeBytes,this.queue=new _s({concurrency:this.maxConcurrency}),this.onFailedResponseHook=e?.onFailedResponseHook}call(e,...r){return this.callWithOptions({},e,...r)}callWithOptions(e,r,...n){let i=e.sizeBytes??0;if(this.maxQueueSizeBytes!==void 0&&i>0&&this.queueSizeBytes+i>this.maxQueueSizeBytes)return Promise.reject(new Error(`Queue size limit (${this.maxQueueSizeBytes} bytes) exceeded. Current queue size: ${this.queueSizeBytes} bytes, attempted addition: ${i} bytes.`));i>0&&(this.queueSizeBytes+=i);let a=this.onFailedResponseHook,s=this.queue.add(()=>zr(()=>r(...n).catch(o=>{throw o instanceof Error?o:new Error(o)}),{async onFailedAttempt({error:o}){if(typeof o!="object"||o==null)throw o;let c="message"in o&&typeof o.message=="string"?o.message:void 0;if(c?.startsWith("Cancel")||c?.startsWith("TimeoutError")||c?.startsWith("AbortError")||"name"in o&&o.name==="TimeoutError"||"code"in o&&o.code==="ECONNABORTED")throw o;let u="response"in o?o.response:void 0;if(a&&await a(u))return;let l=u?.status??("status"in o?o.status:void 0);if(l!=null&&(typeof l=="number"||typeof l=="string")&&!vl.includes(+l))throw o},retries:this.maxRetries,randomize:!0}),{throwOnTimeout:!0});return i>0&&(s=s.finally(()=>{this.queueSizeBytes-=i})),e.signal?Promise.race([s,new Promise((o,c)=>{e.signal?.addEventListener("abort",()=>{c(new Error("AbortError"))})})]):s}};function Yr(t){return typeof t?._getType=="function"}function Zr(t){let e={type:t._getType(),data:{content:t.content}};return t?.additional_kwargs&&Object.keys(t.additional_kwargs).length>0&&(e.data.additional_kwargs={...t.additional_kwargs}),e}function Bt(t){return`Invalid prompt identifier format: "${t}". Expected one of:
19
+ - "prompt-name" (for private prompts)
20
+ - "owner/prompt-name" (for prompts with explicit owner)
21
+ - "prompt-name:commit-hash" (with commit reference)
22
+ - "owner/prompt-name:commit-hash" (with owner and commit)`}var en=class extends Error{constructor(e){super(e),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="LangSmithConflictError",this.status=409}},tn=class extends Error{constructor(e){super(e),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="LangSmithNotFoundError",this.status=404}};function Ht(t){return t!=null&&typeof t=="object"&&"name"in t&&t?.name==="LangSmithNotFoundError"}function gs(t){return t!=null&&typeof t=="object"&&"name"in t&&t?.name==="LangSmithConflictError"}async function w(t,e,r){let n;if(t.ok){r&&(n=await t.text());return}if(t.status===403)try{(await t.json())?.error==="org_scoped_key_requires_workspace"&&(n="This API key is org-scoped and requires workspace specification. Please provide 'workspaceId' parameter, or set LANGSMITH_WORKSPACE_ID environment variable.")}catch{let o=new Error(`${t.status} ${t.statusText}`);throw o.status=t?.status,o}if(n===void 0)try{n=await t.text()}catch{n=""}let i=`Failed to ${e}. Received status [${t.status}]: ${t.statusText}. Message: ${n}`;if(t.status===404)throw new tn(i);if(t.status===409)throw new en(i);let a=new Error(i);throw a.status=t.status,a}var ys="ERR_CONFLICTING_ENDPOINTS",Dt=class extends Error{constructor(){super("You cannot provide both LANGSMITH_ENDPOINT / LANGCHAIN_ENDPOINT and LANGSMITH_RUNS_ENDPOINTS."),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:ys}),this.name="ConflictingEndpointsError"}};function ws(t){return typeof t=="object"&&t!==null&&t.code===ys}function z(t){if(!t||t.split("/").length>2||t.startsWith("/")||t.endsWith("/")||t.split(":").length>2)throw new Error(Bt(t));let[e,r]=t.split(":"),n=r||"latest";if(e.includes("/")){let[i,a]=e.split("/",2);if(!i||!a)throw new Error(Bt(t));return[i,a,n]}else{if(!e)throw new Error(Bt(t));return["-",e,n]}}var Ft="https://api.smith.langchain.com",Sl="langsmith-cli",xl=6e4,Tl=1e4;function Al(){let t=Xe();return t==="browser"||t==="webworker"}function Il(){let t=D("LANGSMITH_CONFIG_FILE");if(t)return t;let e=D("HOME")??D("USERPROFILE");if(e)return Re.join(e,".langsmith","config.json")}function Cl(t){let e=D("LANGSMITH_PROFILE");if(e)return e;if(t.current_profile)return t.current_profile;if(t.profiles?.default)return"default"}function Ol(){if(Al())return;let t=Il();if(!(!t||!Ge(t)))try{let e=JSON.parse(Tt(t)),r=Cl(e),n=r?e.profiles?.[r]:void 0;return!r||!n?void 0:{configPath:t,config:e,profileName:r,profile:n}}catch{return}}function re(t){return t!=null&&t.trim()!==""}function we(t){return t?.trim().replace(/^["']|["']$/g,"")}function Rl(t){let e=t.oauth;if(!e?.refresh_token)return!1;if(!e.access_token)return!0;if(!e.expires_at)return!1;let r=Date.parse(e.expires_at);return Number.isNaN(r)?!1:r<=Date.now()+xl}function Ml(t){let e=t;for(;e.endsWith("/");)e=e.slice(0,-1);let r="/api/v1";return e.endsWith(r)?e.slice(0,-r.length):e}function Nl(t,e){t.oauth??={},e.access_token&&(t.oauth.access_token=e.access_token),e.refresh_token&&(t.oauth.refresh_token=e.refresh_token),typeof e.expires_in=="number"&&e.expires_in>0&&(t.oauth.expires_at=new Date(Date.now()+e.expires_in*1e3).toISOString())}function bs(t){return t.reason??new Error("The operation was aborted.")}async function Pl(t,e){if(!e)return t;if(e.aborted)throw bs(e);let r,n=new Promise((i,a)=>{let s=()=>{a(bs(e))};e.addEventListener("abort",s,{once:!0}),r=()=>{e.removeEventListener("abort",s)}});try{return await Promise.race([t,n])}finally{r?.()}}function Es(){let t=Ol(),e=t?.profile;if(!t||!e)return{};let r=we(e.api_key),n=we(e.oauth?.access_token),i=we(e.oauth?.refresh_token);return{apiUrl:e.api_url,apiKey:r,workspaceId:e.workspace_id,oauthAccessToken:n,oauthRefreshToken:i,profileAuth:r||n||i?new rn(t):void 0}}var rn=class{constructor(e){Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"refreshPromise",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"managedAuthorizationValue",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.rememberProfileAuthHeader(this.currentAuthHeader())}currentAuthHeader(){let e=kl(this.state.profile);return this.rememberProfileAuthHeader(e),e}async getAuthHeader(e,r){Rl(this.state.profile)&&(this.refreshPromise||(this.refreshPromise=this.refreshOAuthToken(e).finally(()=>{this.refreshPromise=void 0})),await Pl(this.refreshPromise,r));let n=vs(this.state.profile);return this.rememberProfileAuthHeader(n),n}isProfileAuthorizationHeader(e){return e===this.managedAuthorizationValue}async refreshOAuthToken(e){let r=this.state.profile.oauth?.refresh_token;if(!r)return;let n=we(this.state.profile.api_url)??Ft;try{let i=new URLSearchParams({grant_type:"refresh_token",client_id:Sl,refresh_token:r}),a=await e(`${Ml(n)}/oauth/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:i.toString(),signal:AbortSignal.timeout(Tl)});if(!a.ok)return;let s=await a.json();if(!s.access_token)return;Nl(this.state.profile,s),this.state.config.profiles??={},this.state.config.profiles[this.state.profileName]=this.state.profile,await xt(this.state.configPath,`${JSON.stringify(this.state.config,null,2)}
23
+ `)}catch{return}}rememberProfileAuthHeader(e){this.managedAuthorizationValue=e?.name==="Authorization"?e.value:void 0}};function kl(t){let e=we(t.oauth?.access_token);if(e)return{name:"Authorization",value:`Bearer ${e}`};if(!we(t.oauth?.refresh_token))return vs(t)}function vs(t){let e=we(t.oauth?.access_token);if(e)return{name:"Authorization",value:`Bearer ${e}`};let r=we(t.api_key);if(r)return{name:"x-api-key",value:r}}var Ss="[...]",Ll={result:"[Circular]"},zt=[],ze=[],$l=new TextEncoder;function Ul(){return{depthLimit:Number.MAX_SAFE_INTEGER,edgesLimit:Number.MAX_SAFE_INTEGER}}function Gt(t){return $l.encode(t)}function xs(t){if(t&&typeof t=="object"&&t!==null){if(t instanceof Map)return Object.fromEntries(t);if(t instanceof Set)return Array.from(t);if(t instanceof Date)return t.toISOString();if(t instanceof RegExp)return t.toString();if(t instanceof Error)return{name:t.name,message:t.message}}else if(typeof t=="bigint")return t.toString();return t}function jl(t){return function(e,r){if(t){let n=t.call(this,e,r);if(n!==void 0)return n}return xs(r)}}function Ts(t){try{let i=function(l){let d=n(l);return d>r&&(r=d),d+2},a=function(l){return l===0?2:2+l*4},s=function(l){return l===void 0||typeof l=="function"||typeof l=="symbol"},o=function(l){return l===void 0||typeof l=="function"||typeof l=="symbol"?4:c(l)},c=function(l){if(l===null)return 4;if(l===void 0)return 0;let d=typeof l;if(d==="boolean")return 5;if(d==="number")return Number.isFinite(l)?l.toString().length:4;if(d==="bigint")return l.toString().length+2;if(d==="string")return i(l);if(d==="function"||d==="symbol")return 0;let f=l;if(f instanceof Date)return 26;if(f instanceof RegExp)return n(f.toString())+2;if(f instanceof Error){let m=f.name??"",y=f.message??"";return 22+n(m)+n(y)}if(typeof Buffer<"u"&&f instanceof Buffer)return 28+a(f.byteLength);if(ArrayBuffer.isView(f)){if(f instanceof DataView)return 2;let m=f.length??0,v=f instanceof Float32Array||f instanceof Float64Array?30:12;return 2+m*v}if(f instanceof ArrayBuffer)return 2;if(e.has(f))return 24;if(typeof f.toJSON=="function"){let m;try{m=f.toJSON("")}catch{return 16}e.add(f);let y=c(m);return e.delete(f),y}e.add(f);let h;if(Array.isArray(f)){h=2;let m=f.length;for(let y=0;y<m;y++)h+=o(f[y]),y<m-1&&(h+=1)}else if(f instanceof Map){h=2;let m=0;for(let[y,v]of f){if(s(v))continue;m>0&&(h+=1);let E=typeof y=="string"?y:String(y);h+=n(E)+3,h+=c(v),m++}}else if(f instanceof Set){h=2;let m=0;for(let y of f)m>0&&(h+=1),h+=o(y),m++}else{h=2;let m=0,y=Object.keys(f);for(let v=0;v<y.length;v++){let E=y[v],x=f[E];s(x)||(m>0&&(h+=1),h+=n(E)+3,h+=c(x),m++)}}return e.delete(f),h},e=new Set,r=0,n=typeof Buffer<"u"&&typeof Buffer.byteLength=="function"?l=>Buffer.byteLength(l,"utf8"):l=>l.length;return{size:c(t),maxStringLen:r}}catch{return{size:V(t).length,maxStringLen:0}}}function V(t,e,r,n,i){try{let a=JSON.stringify(t,jl(r),n);return Gt(a)}catch(a){if(!a.message?.includes("Converting circular structure to JSON"))return console.warn(`[WARNING]: LangSmith received unserializable value.${e?`
24
+ Context: ${e}`:""}`),Gt("[Unserializable]");R("SUPPRESS_CIRCULAR_JSON_WARNINGS")!=="true"&&console.warn(`[WARNING]: LangSmith received circular JSON. This will decrease tracer performance. ${e?`
25
+ Context: ${e}`:""}`),typeof i>"u"&&(i=Ul()),an(t,"",0,[],void 0,0,i);let s;try{ze.length===0?s=JSON.stringify(t,r,n):s=JSON.stringify(t,Dl(r),n)}catch{return Gt("[unable to serialize, circular reference is too complex to analyze]")}finally{for(;zt.length!==0;){let o=zt.pop();o.length===4?Object.defineProperty(o[0],o[1],o[3]):o[0][o[1]]=o[2]}}return Gt(s)}}function nn(t,e,r,n){var i=Object.getOwnPropertyDescriptor(n,r);i.get!==void 0?i.configurable?(Object.defineProperty(n,r,{value:t}),zt.push([n,r,e,i])):ze.push([e,r,t]):(n[r]=t,zt.push([n,r,e]))}function an(t,e,r,n,i,a,s){a+=1;var o;if(typeof t=="object"&&t!==null){for(o=0;o<n.length;o++)if(n[o]===t){nn(Ll,t,e,i);return}if(typeof s.depthLimit<"u"&&a>s.depthLimit){nn(Ss,t,e,i);return}if(typeof s.edgesLimit<"u"&&r+1>s.edgesLimit){nn(Ss,t,e,i);return}if(n.push(t),Array.isArray(t))for(o=0;o<t.length;o++)an(t[o],o,o,n,t,a,s);else{t=xs(t);var c=Object.keys(t);for(o=0;o<c.length;o++){var u=c[o];an(t[u],u,o,n,t,a,s)}}n.pop()}}function Dl(t){return t=typeof t<"u"?t:function(e,r){return r},function(e,r){if(ze.length>0)for(var n=0;n<ze.length;n++){var i=ze[n];if(i[1]===e&&i[0]===r){r=i[2],ze.splice(n,1);break}}return t.call(this,e,r)}}var Hl=`
26
+ const { parentPort } = require("worker_threads");
27
+
28
+ const CIRCULAR_REPLACE_NODE = { result: "[Circular]" };
29
+
30
+ function serializeWellKnownTypes(val) {
31
+ if (val && typeof val === "object") {
32
+ if (val instanceof Map) return Object.fromEntries(val);
33
+ if (val instanceof Set) return Array.from(val);
34
+ if (val instanceof Date) return val.toISOString();
35
+ if (val instanceof RegExp) return val.toString();
36
+ if (val instanceof Error) return { name: val.name, message: val.message };
37
+ } else if (typeof val === "bigint") {
38
+ return val.toString();
39
+ }
40
+ return val;
41
+ }
42
+
43
+ function defaultReplacer(_key, val) {
44
+ return serializeWellKnownTypes(val);
45
+ }
46
+
47
+ // Decirculate in-place: replace circular refs with { result: "[Circular]" }
48
+ // then restore after stringify. Mirrors fast-safe-stringify's decirc().
49
+ const restoreStack = [];
50
+ function decirc(val, k, stack, parent) {
51
+ if (typeof val === "object" && val !== null) {
52
+ for (let i = 0; i < stack.length; i++) {
53
+ if (stack[i] === val) {
54
+ const orig = parent[k];
55
+ parent[k] = CIRCULAR_REPLACE_NODE;
56
+ restoreStack.push([parent, k, orig]);
57
+ return;
58
+ }
59
+ }
60
+ stack.push(val);
61
+ if (Array.isArray(val)) {
62
+ for (let i = 0; i < val.length; i++) decirc(val[i], i, stack, val);
63
+ } else {
64
+ const normalized = serializeWellKnownTypes(val);
65
+ // Only recurse into normalized if it's still an object (arrays/objects),
66
+ // else it was replaced with a primitive (e.g. Date -> string).
67
+ if (normalized === val) {
68
+ const keys = Object.keys(val);
69
+ for (let i = 0; i < keys.length; i++) decirc(val[keys[i]], keys[i], stack, val);
70
+ }
71
+ }
72
+ stack.pop();
73
+ }
74
+ }
75
+
76
+ function serialize(obj) {
77
+ try {
78
+ return JSON.stringify(obj, defaultReplacer);
79
+ } catch (e) {
80
+ if (!String(e && e.message).includes("Converting circular structure to JSON")) {
81
+ return "[Unserializable]";
82
+ }
83
+ decirc(obj, "", [], { "": obj });
84
+ try {
85
+ return JSON.stringify(obj, defaultReplacer);
86
+ } catch (_) {
87
+ return "[unable to serialize, circular reference is too complex to analyze]";
88
+ } finally {
89
+ while (restoreStack.length) {
90
+ const [p, k, v] = restoreStack.pop();
91
+ p[k] = v;
92
+ }
93
+ }
94
+ }
95
+ }
96
+
97
+ parentPort.on("message", (msg) => {
98
+ const { id, op, payload } = msg;
99
+ try {
100
+ if (op === "serialize") {
101
+ const str = serialize(payload);
102
+ const buf = Buffer.from(str, "utf8");
103
+ // Slice into its own ArrayBuffer so we can transfer without dragging
104
+ // unrelated bytes from any shared pool buffer.
105
+ const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
106
+ parentPort.postMessage({ id, bytes: ab, length: buf.byteLength }, [ab]);
107
+ } else if (op === "ping") {
108
+ parentPort.postMessage({ id });
109
+ } else {
110
+ parentPort.postMessage({ id, error: "unknown op: " + op });
111
+ }
112
+ } catch (e) {
113
+ parentPort.postMessage({ id, error: String((e && e.message) || e) });
114
+ }
115
+ });
116
+ `,on=class{constructor(){Object.defineProperty(this,"worker",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"nextId",{enumerable:!0,configurable:!0,writable:!0,value:1}),Object.defineProperty(this,"pending",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"disabled",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"startPromise",{enumerable:!0,configurable:!0,writable:!0,value:null})}async ensureStarted(){if(this.disabled)return!1;if(this.worker!==null)return!0;if(this.startPromise!==null)return this.startPromise;this.startPromise=this._start();try{return await this.startPromise}finally{this.startPromise=null}}async _start(){if(!!1||null===null)return this.disabled=!0,!1;try{let e=new null(Hl,{eval:!0});return e.on("message",r=>{let n=this.pending.get(r.id);n&&(this.pending.delete(r.id),r.error?n.reject(new Error(r.error)):r.bytes&&typeof r.length=="number"?n.resolve(new Uint8Array(r.bytes,0,r.length)):n.reject(new Error("worker returned malformed message")))}),e.on("error",r=>{for(let[,n]of this.pending)n.reject(r);this.pending.clear(),this.disabled=!0,this.worker=null}),e.on("exit",r=>{for(let[,n]of this.pending)n.reject(new Error(`worker exited with code ${r}`));this.pending.clear(),this.worker=null}),e.unref(),this.worker=e,!0}catch{return this.disabled=!0,!1}}async serialize(e){if(!await this.ensureStarted())return null;let n=this.nextId++;return new Promise((i,a)=>{this.pending.set(n,{resolve:i,reject:a});try{this.worker.postMessage({id:n,op:"serialize",payload:e})}catch(s){this.pending.delete(n),a(s)}})}async terminate(){this.worker&&(await this.worker.terminate(),this.worker=null);for(let[,e]of this.pending)e.reject(new Error("worker terminated"));this.pending.clear()}},sn=null;function Is(){return sn===null&&(sn=new on),sn}var Fl=64*1024,Gl=2048;function Cs(t,e=Fl,r=Gl){if(t===null||typeof t!="object")return typeof t=="string"&&t.length>=e;let n=[t],i=new Set,a=0;for(;n.length>0;){if(a++>=r)return!1;let s=n.pop();if(s==null)continue;let o=typeof s;if(o==="string"){if(s.length>=e)return!0;continue}if(o!=="object")continue;let c=s;if(i.has(c)||(i.add(c),c instanceof Date||c instanceof RegExp||c instanceof Error||c instanceof ArrayBuffer||ArrayBuffer.isView(c)))continue;if(Array.isArray(c)){for(let l=c.length-1;l>=0;l--)n.push(c[l]);continue}if(c instanceof Map){for(let[,l]of c)n.push(l);continue}if(c instanceof Set){for(let l of c)n.push(l);continue}let u=Object.keys(c);for(let l=u.length-1;l>=0;l--)n.push(c[u[l]])}return!1}function zl(t,e){let[r]=z(t);if(r!=="-"&&!e)throw new Error("Pulling a public prompt by owner/name is disabled by default because prompts may contain untrusted serialized LangChain objects. If you trust this prompt, set `dangerouslyPullPublicPrompt: true` to acknowledge the risk.")}function Os(t){return typeof t=="string"&&t.length>0&&!t.includes("Z")&&!t.includes("+")&&!t.includes("-",10)?t+"Z":t}function Ze(t){return{...t,start_time:Os(t.start_time),end_time:Os(t.end_time)}}function Rs(t,e,r){if(r)return t;let n=Ot(),i=e??kr(),a=t.extra??{},s=a.metadata;return t.extra={...a,runtime:{...n,...a?.runtime},metadata:{...i,...i.revision_id||"revision_id"in t&&t.revision_id?{revision_id:("revision_id"in t?t.revision_id:void 0)??i.revision_id}:{},...s}},t}var Vl=t=>{let e=t?.toString()??R("TRACING_SAMPLING_RATE");if(e===void 0)return;let r=parseFloat(e);if(r<0||r>1)throw new Error(`LANGSMITH_TRACING_SAMPLING_RATE must be between 0 and 1 if set. Got: ${r}`);return r},ql=t=>{let r=t.replace("http://","").replace("https://","").split("/")[0].split(":")[0];return r==="localhost"||r==="127.0.0.1"||r==="::1"};async function Kl(t){let e=[];for await(let r of t)e.push(r);return e}function Vt(t){if(t!==void 0)return t.trim().replace(/^"(.*)"$/,"$1").replace(/^'(.*)'$/,"$1")}var Jl=async t=>{if(t?.status===429){let e=parseInt(t.headers.get("retry-after")??"10",10)*1e3;if(e>0)return await new Promise(r=>setTimeout(r,e)),!0}return!1};function Ms(t){return typeof t=="number"?Number(t.toFixed(4)):t}var Wl=24*1024*1024,Ps=1024*1024*1024,Xl=1e4,Ql=100,cn=class{constructor(e){Object.defineProperty(this,"items",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"sizeBytes",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"maxSizeBytes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSizeBytes=e??Ps}peek(){return this.items[0]}push(e){let r,n=new Promise(a=>{r=a}),i=Ts(e.item).size;return this.sizeBytes+i>this.maxSizeBytes&&this.items.length>0?(console.warn(`AutoBatchQueue size limit (${this.maxSizeBytes} bytes) exceeded. Dropping run with id: ${e.item.id}. Current queue size: ${this.sizeBytes} bytes, attempted addition: ${i} bytes.`),r(),n):(this.items.push({action:e.action,payload:e.item,otelContext:e.otelContext,apiKey:e.apiKey,apiUrl:e.apiUrl,itemPromiseResolve:r,itemPromise:n,size:i}),this.sizeBytes+=i,n)}pop({upToSizeBytes:e,upToSize:r}){if(e<1)throw new Error("Number of bytes to pop off may not be less than 1.");let n=[],i=0;for(;i+(this.peek()?.size??0)<e&&this.items.length>0&&n.length<r;){let a=this.items.shift();a&&(n.push(a),i+=a.size,this.sizeBytes-=a.size)}if(n.length===0&&this.items.length>0){let a=this.items.shift();n.push(a),i+=a.size,this.sizeBytes-=a.size}return[n.map(a=>({action:a.action,item:a.payload,otelContext:a.otelContext,apiKey:a.apiKey,apiUrl:a.apiUrl,size:a.size})),()=>n.forEach(a=>a.itemPromiseResolve())]}},ye=class t{get tracingMode(){return this._tracingMode}get _fetch(){let e=this.fetchImplementation||$a(this.debug);return(async(r,n)=>{let i,a=this.getProfileManagedAuthorizationHeader(n);return this.apiKey!==void 0?i={name:"x-api-key",value:`${this.apiKey}`}:this.hasExplicitAuthHeader(n,a)||(i=await this.profileAuth?.getAuthHeader(e,n?.signal)),e(r,this.applyCurrentAuthHeaders(n,i,a))})}getProfileManagedAuthorizationHeader(e){if(!e?.headers||!this.profileAuth)return;let r=new Headers(e.headers).get("Authorization");if(re(r))return this.profileAuth.isProfileAuthorizationHeader(r??"")?r??void 0:void 0}isProfileManagedAuthorizationHeader(e,r){return e===r||this.profileAuth?.isProfileAuthorizationHeader(e)===!0}hasExplicitAuthHeader(e,r){if(!e?.headers)return!1;let n=new Headers(e.headers);if(re(n.get("x-api-key")))return!0;let i=n.get("Authorization");return re(i)?!this.isProfileManagedAuthorizationHeader(i??"",r):!1}applyCurrentAuthHeaders(e,r,n){if(!r)return e;let i=d=>{if(this.apiKey!==void 0&&r.name==="x-api-key")return d.delete("Authorization"),d.has("x-api-key")||d.set("x-api-key",r.value),d;if(r.name==="Authorization"){if(re(d.get("x-api-key")))return d;let h=d.get("Authorization");return re(h)&&!this.isProfileManagedAuthorizationHeader(h??"",n)||d.set("Authorization",r.value),d}let f=d.get("Authorization");return re(f)&&!this.isProfileManagedAuthorizationHeader(f??"",n)||(re(f)&&d.delete("Authorization"),d.has("x-api-key")||d.set("x-api-key",r.value)),d};if(!e)return{headers:{[r.name]:r.value}};if(e.headers instanceof Headers)return{...e,headers:i(new Headers(e.headers))};if(Array.isArray(e.headers))return{...e,headers:i(new Headers(e.headers))};let a={...e.headers??{}},s=d=>Object.keys(a).find(f=>f.toLowerCase()===d),o=d=>{let f=s(d);return f?a[f]:void 0},c=re(o("x-api-key")),u=o("authorization"),l=re(u)&&!this.isProfileManagedAuthorizationHeader(u??"",n);if(this.apiKey!==void 0&&r.name==="x-api-key"){let d=s("authorization");return d&&delete a[d],c||(a["x-api-key"]=r.value),{...e,headers:a}}if(r.name==="Authorization"){if(!c&&!l){let d=s("authorization");d&&d!=="Authorization"&&delete a[d],a.Authorization=r.value}return{...e,headers:a}}if(!l){let d=s("authorization");d&&delete a[d],c||(a["x-api-key"]=r.value)}return{...e,headers:a}}_trackDrain(e){this._pendingDrains.add(e),e.finally(()=>{this._pendingDrains.delete(e)})}async _serializeBody(e,r){if(this.manualFlushMode)return V(e,r);if(!Cs(e))return V(e,r);if(this._serializeWorker===void 0&&(this._serializeWorker=Is()),this._serializeWorker===null)return V(e,r);try{let n=await this._serializeWorker.serialize(e);return n===null?(this._serializeWorker=null,V(e,r)):n}catch{return V(e,r)}}constructor(e={}){Object.defineProperty(this,"apiKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"apiUrl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"webUrl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"workspaceId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"caller",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"batchIngestCaller",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"timeout_ms",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_tenantId",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"hideInputs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"hideOutputs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"hideMetadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"omitTracedRuntimeInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tracingSampleRate",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"filteredPostUuids",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"autoBatchTracing",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"autoBatchQueue",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"autoBatchTimeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"autoBatchAggregationDelayMs",{enumerable:!0,configurable:!0,writable:!0,value:250}),Object.defineProperty(this,"batchSizeBytesLimit",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"batchSizeLimit",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"fetchOptions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"settings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"blockOnRootRunFinalization",{enumerable:!0,configurable:!0,writable:!0,value:D("LANGSMITH_TRACING_BACKGROUND")==="false"}),Object.defineProperty(this,"traceBatchConcurrency",{enumerable:!0,configurable:!0,writable:!0,value:5}),Object.defineProperty(this,"_serverInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_getServerInfoPromise",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"manualFlushMode",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_serializeWorker",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_pendingDrains",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"langSmithToOTELTranslator",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_tracingMode",{enumerable:!0,configurable:!0,writable:!0,value:"langsmith"}),Object.defineProperty(this,"fetchImplementation",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cachedLSEnvVarsForMetadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_promptCache",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"profileAuth",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"multipartStreamingDisabled",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_multipartDisabled",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_runCompressionDisabled",{enumerable:!0,configurable:!0,writable:!0,value:R("DISABLE_RUN_COMPRESSION")==="true"}),Object.defineProperty(this,"failedTracesDir",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"failedTracesMaxBytes",{enumerable:!0,configurable:!0,writable:!0,value:100*1024*1024}),Object.defineProperty(this,"_customHeaders",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"debug",{enumerable:!0,configurable:!0,writable:!0,value:D("LANGSMITH_DEBUG")==="true"});let r=t.getDefaultClientConfig();this.tracingSampleRate=Vl(e.tracingSamplingRate),this.apiUrl=Vt(e.apiUrl??r.apiUrl)??"",this.apiUrl.endsWith("/")&&(this.apiUrl=this.apiUrl.slice(0,-1));let n=Vt(e.apiKey??r.apiKey);if(this.apiKey=re(n)?n:void 0,this.profileAuth=this.apiKey!==void 0?void 0:r.profileAuth,this.webUrl=Vt(e.webUrl??r.webUrl),this.webUrl?.endsWith("/")&&(this.webUrl=this.webUrl.slice(0,-1)),this.workspaceId=Vt(e.workspaceId??r.workspaceId),this.timeout_ms=e.timeout_ms??9e4,this.caller=new Ye({...e.callerOptions??{},maxRetries:4,debug:e.debug??this.debug}),this.traceBatchConcurrency=e.traceBatchConcurrency??this.traceBatchConcurrency,this.traceBatchConcurrency<1)throw new Error("Trace batch concurrency must be positive.");this.debug=e.debug??this.debug,this.fetchImplementation=e.fetchImplementation,this.failedTracesDir=R("FAILED_TRACES_DIR")||void 0;let i=R("FAILED_TRACES_MAX_MB");if(i){let s=parseInt(i,10);Number.isFinite(s)&&s>0&&(this.failedTracesMaxBytes=s*1024*1024)}let a=e.maxIngestMemoryBytes??Ps;this.batchIngestCaller=new Ye({maxRetries:4,maxConcurrency:this.traceBatchConcurrency,maxQueueSizeBytes:a,...e.callerOptions??{},onFailedResponseHook:Jl,debug:e.debug??this.debug}),this.hideInputs=e.hideInputs??e.anonymizer??r.hideInputs,this.hideOutputs=e.hideOutputs??e.anonymizer??r.hideOutputs,this.hideMetadata=e.hideMetadata??r.hideMetadata,this.omitTracedRuntimeInfo=e.omitTracedRuntimeInfo??!1,this.autoBatchTracing=e.autoBatchTracing??this.autoBatchTracing,this.autoBatchQueue=new cn(a),this.blockOnRootRunFinalization=e.blockOnRootRunFinalization??this.blockOnRootRunFinalization,this.batchSizeBytesLimit=e.batchSizeBytesLimit,this.batchSizeLimit=e.batchSizeLimit,this.fetchOptions=e.fetchOptions||{},this.manualFlushMode=e.manualFlushMode??this.manualFlushMode,this._tracingMode=Rt(e.tracingMode),this._tracingMode==="otel"&&(this.langSmithToOTELTranslator=new Nt),this.cachedLSEnvVarsForMetadata=kr(),e.cache!==void 0&&e.disablePromptCache&&Ce("Both 'cache' and 'disablePromptCache' were provided. The 'cache' parameter is deprecated and will be removed in a future version. Using 'cache' parameter value."),e.cache!==void 0?(Ce("The 'cache' parameter is deprecated and will be removed in a future version. Use 'configureGlobalPromptCache()' to configure the global cache, or 'disablePromptCache: true' to disable caching for this client."),e.cache===!1?this._promptCache=void 0:e.cache===!0?this._promptCache=It:this._promptCache=e.cache):e.disablePromptCache||(this._promptCache=It),this._customHeaders=e.headers??{}}static getDefaultClientConfig(){let e=Es(),r=R("API_KEY"),n=R("ENDPOINT"),i=R("WORKSPACE_ID"),a=re(r),s=n??e.apiUrl??Ft,o=i??e.workspaceId,c=R("HIDE_INPUTS")==="true",u=R("HIDE_OUTPUTS")==="true",l=R("HIDE_METADATA")==="true";return{apiUrl:s,apiKey:r,webUrl:void 0,hideInputs:c,hideOutputs:u,hideMetadata:l,workspaceId:o,oauthAccessToken:a?void 0:e.oauthAccessToken,oauthRefreshToken:a?void 0:e.oauthRefreshToken,profileAuth:a?void 0:e.profileAuth}}getHostUrl(){return this.webUrl?this.webUrl:ql(this.apiUrl)?(this.webUrl="http://localhost:3000",this.webUrl):this.apiUrl.endsWith("/api/v1")?(this.webUrl=this.apiUrl.replace("/api/v1",""),this.webUrl):this.apiUrl.includes("/api")&&!this.apiUrl.split(".",1)[0].endsWith("api")?(this.webUrl=this.apiUrl.replace("/api",""),this.webUrl):this.apiUrl.split(".",1)[0].includes("dev")?(this.webUrl="https://dev.smith.langchain.com",this.webUrl):this.apiUrl.split(".",1)[0].includes("eu")?(this.webUrl="https://eu.smith.langchain.com",this.webUrl):this.apiUrl.split(".",1)[0].includes("aws")?(this.webUrl="https://aws.smith.langchain.com",this.webUrl):this.apiUrl.split(".",1)[0].includes("apac")?(this.webUrl="https://apac.smith.langchain.com",this.webUrl):this.apiUrl.split(".",1)[0].includes("beta")?(this.webUrl="https://beta.smith.langchain.com",this.webUrl):(this.webUrl="https://smith.langchain.com",this.webUrl)}get _mergedHeaders(){let e={"User-Agent":`langsmith-js/${Ct}`,...this._customHeaders};if(this.apiKey!==void 0)e["x-api-key"]=`${this.apiKey}`;else{let r=this.profileAuth?.currentAuthHeader();r&&(e[r.name]=r.value)}return this.workspaceId&&(e["x-tenant-id"]=this.workspaceId),e}get headers(){return this._customHeaders}set headers(e){this._customHeaders=e??{}}_getPlatformEndpointPath(e){return this.apiUrl.slice(-3)!=="/v1"&&this.apiUrl.slice(-4)!=="/v1/"?`/v1/platform/${e}`:`/platform/${e}`}async processInputs(e){return this.hideInputs===!1?e:this.hideInputs===!0?{}:typeof this.hideInputs=="function"?this.hideInputs(e):e}async processOutputs(e){return this.hideOutputs===!1?e:this.hideOutputs===!0?{}:typeof this.hideOutputs=="function"?this.hideOutputs(e):e}async processMetadata(e){return this.hideMetadata===!1?e:this.hideMetadata===!0?{}:typeof this.hideMetadata=="function"?this.hideMetadata(e):e}_filterNewTokenEvents(e){return!e||e.length===0?e:e.map(r=>{if(r.name==="new_token"){let{kwargs:n,...i}=r;return i}return r})}async prepareRunCreateOrUpdateInputs(e){let r={...e};return r.inputs!==void 0&&(r.inputs=await this.processInputs(r.inputs)),r.outputs!==void 0&&(r.outputs=await this.processOutputs(r.outputs)),r.extra!=null&&"metadata"in r.extra&&(r.extra={...r.extra,metadata:await this.processMetadata(r.extra.metadata)}),r.events!==void 0&&(r.events=this._filterNewTokenEvents(r.events)),r}async _getResponse(e,r){let n=r?.toString()??"",i=`${this.apiUrl}${e}?${n}`;return await this.caller.call(async()=>{let s=await this._fetch(i,{method:"GET",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(s,`fetch ${e}`),s})}async _get(e,r){return(await this._getResponse(e,r)).json()}async*_getPaginated(e,r=new URLSearchParams,n){let i=Number(r.get("offset"))||0,a=Number(r.get("limit"))||100;for(;;){r.set("offset",String(i)),r.set("limit",String(a));let s=`${this.apiUrl}${e}?${r}`,o=await this.caller.call(async()=>{let u=await this._fetch(s,{method:"GET",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(u,`fetch ${e}`),u}),c=n?n(await o.json()):await o.json();if(c.length===0||(yield c,c.length<a))break;i+=c.length}}async*_getCursorPaginatedList(e,r=null,n="POST",i="runs"){let a=r?{...r}:{};for(;;){let s=JSON.stringify(a),c=await(await this.caller.call(async()=>{let l=await this._fetch(`${this.apiUrl}${e}`,{method:n,headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:s});return await w(l,`fetch ${e}`),l})).json();if(!c||!c[i])break;yield c[i];let u=c.cursors;if(!u||!u.next)break;a.cursor=u.next}}_shouldSample(){return this.tracingSampleRate===void 0?!0:Math.random()<this.tracingSampleRate}_filterForSampling(e,r=!1){if(this.tracingSampleRate===void 0)return e;if(r){let n=[];for(let i of e)this.filteredPostUuids.has(i.trace_id)?i.id===i.trace_id&&this.filteredPostUuids.delete(i.trace_id):n.push(i);return n}else{let n=[];for(let i of e){let a=i.trace_id??i.id;this.filteredPostUuids.has(a)||(i.id===a?this._shouldSample()?n.push(i):this.filteredPostUuids.add(a):n.push(i))}return n}}async _getBatchSizeLimitBytes(){let e=await this._ensureServerInfo();return this.batchSizeBytesLimit??e?.batch_ingest_config?.size_limit_bytes??Wl}async _getBatchSizeLimit(){let e=await this._ensureServerInfo();return this.batchSizeLimit??e?.batch_ingest_config?.size_limit??Ql}async _getDatasetExamplesMultiPartSupport(){return(await this._ensureServerInfo()).instance_flags?.dataset_examples_multipart_enabled??!1}drainAutoBatchQueue({batchSizeLimitBytes:e,batchSizeLimit:r}){let n=[];for(;this.autoBatchQueue.items.length>0;){let[i,a]=this.autoBatchQueue.pop({upToSizeBytes:e,upToSize:r});if(!i.length){a();break}let s=i.reduce((u,l)=>{let d=l.apiUrl??this.apiUrl,f=l.apiKey??this.apiKey,m=l.apiKey===this.apiKey&&l.apiUrl===this.apiUrl?"default":`${d}|${f}`;return u[m]||(u[m]=[]),u[m].push(l),u},{}),o=[];for(let[u,l]of Object.entries(s)){let d=this._processBatch(l,{apiUrl:u==="default"?void 0:u.split("|")[0],apiKey:u==="default"?void 0:u.split("|")[1]});o.push(d)}let c=Promise.all(o).finally(a);n.push(c)}return Promise.all(n)}static async _writeTraceToFallbackDir(e,r,n,i,a){try{let s=typeof r=="string"?Buffer.from(r,"utf8"):Buffer.from(r),o=JSON.stringify({version:1,endpoint:i,headers:n,body_base64:s.toString("base64")}),c=`trace_${Date.now()}_${Ie().slice(0,8)}.json`,u=Re.join(e,c);if(t._fallbackDirsCreated.has(e)||(await Xa(e),t._fallbackDirsCreated.add(e)),a!==void 0&&a>0)try{let d=(await Qa(e)).filter(h=>h.startsWith("trace_")&&h.endsWith(".json")),f=0;for(let h of d){let{size:m}=await Ya(Re.join(e,h));f+=m}if(f>=a){console.warn(`Could not write trace to fallback dir ${e} as it's already over size limit (${f} bytes >= ${a} bytes). Increase LANGSMITH_FAILED_TRACES_MAX_MB if possible.`);return}}catch{}await xt(u,o),console.warn(`LangSmith trace upload failed; data saved to ${u} for later replay.`)}catch(s){console.error(`LangSmith tracing error: could not write trace to fallback dir ${e}:`,s)}}async _processBatch(e,r){if(!e.length)return;let n=e.reduce((i,a)=>i+(a.size??0),0);try{if(this.langSmithToOTELTranslator!==void 0)this._sendBatchToOTELTranslator(e);else{let i={runCreates:e.filter(o=>o.action==="create").map(o=>o.item),runUpdates:e.filter(o=>o.action==="update").map(o=>o.item)},a=await this._ensureServerInfo();if(!this._multipartDisabled&&(a?.batch_ingest_config?.use_multipart_endpoint??!0)){let o=!this._runCompressionDisabled&&a?.instance_flags?.gzip_body_enabled;try{await this.multipartIngestRuns(i,{...r,useGzip:o,sizeBytes:n})}catch(c){if(Ht(c))this._multipartDisabled=!0,await this.batchIngestRuns(i,{...r,sizeBytes:n});else throw c}}else await this.batchIngestRuns(i,{...r,sizeBytes:n})}}catch(i){console.error("Error exporting batch:",i)}}_sendBatchToOTELTranslator(e){if(this.langSmithToOTELTranslator!==void 0){let r=new Map,n=[];for(let i of e)i.item.id&&i.otelContext&&(r.set(i.item.id,i.otelContext),i.action==="create"?n.push({operation:"post",id:i.item.id,trace_id:i.item.trace_id??i.item.id,run:i.item}):n.push({operation:"patch",id:i.item.id,trace_id:i.item.trace_id??i.item.id,run:i.item}));this.langSmithToOTELTranslator.exportBatch(n,r)}}async processRunOperation(e){clearTimeout(this.autoBatchTimeout),this.autoBatchTimeout=void 0,e.item=Rs(e.item,this.cachedLSEnvVarsForMetadata,this.omitTracedRuntimeInfo);let r=this.autoBatchQueue.push(e);if(this.manualFlushMode)return r;let n=await this._getBatchSizeLimitBytes(),i=await this._getBatchSizeLimit();return(this.autoBatchQueue.sizeBytes>n||this.autoBatchQueue.items.length>i)&&this._trackDrain(this.drainAutoBatchQueue({batchSizeLimitBytes:n,batchSizeLimit:i})),this.autoBatchQueue.items.length>0&&(this.autoBatchTimeout=setTimeout(()=>{this.autoBatchTimeout=void 0,this._trackDrain(this.drainAutoBatchQueue({batchSizeLimitBytes:n,batchSizeLimit:i}))},this.autoBatchAggregationDelayMs)),r}async _getServerInfo(){let r=await(await this.caller.call(async()=>{let n=await this._fetch(`${this.apiUrl}/info`,{method:"GET",headers:{...this._mergedHeaders,Accept:"application/json"},signal:AbortSignal.timeout(Xl),...this.fetchOptions});return await w(n,"get server info"),n})).json();return this.debug&&console.log(`
117
+ === LangSmith Server Configuration ===
118
+ `+JSON.stringify(r,null,2)+`
119
+ `),r}async _ensureServerInfo(){return this._getServerInfoPromise===void 0&&(this._getServerInfoPromise=(async()=>{if(this._serverInfo===void 0)try{this._serverInfo=await this._getServerInfo()}catch(e){console.warn(`[LANGSMITH]: Failed to fetch info on supported operations. Falling back to batch operations and default limits. Info: ${e.status??"Unspecified status code"} ${e.message}`)}return this._serverInfo??{}})()),this._getServerInfoPromise.then(e=>(this._serverInfo===void 0&&(this._getServerInfoPromise=void 0),e))}async _getSettings(){return this.settings||(this.settings=this._get("/settings")),await this.settings}async flush(){let e=await this._getBatchSizeLimitBytes(),r=await this._getBatchSizeLimit();await this.drainAutoBatchQueue({batchSizeLimitBytes:e,batchSizeLimit:r})}_cloneCurrentOTELContext(){let e=Mt(),r=is();if(this.langSmithToOTELTranslator!==void 0){let n=e.getActiveSpan();if(n)return e.setSpan(r.active(),n)}}async createRun(e,r){if(!this._filterForSampling([e]).length)return;let n={...this._mergedHeaders,"Content-Type":"application/json"},i=e.project_name;delete e.project_name;let a=await this.prepareRunCreateOrUpdateInputs({session_name:i,...e,start_time:e.start_time??Date.now()});if(this.autoBatchTracing&&a.trace_id!==void 0&&a.dotted_order!==void 0){let c=this._cloneCurrentOTELContext();this.processRunOperation({action:"create",item:a,otelContext:c,apiKey:r?.apiKey,apiUrl:r?.apiUrl}).catch(console.error);return}let s=Rs(a,this.cachedLSEnvVarsForMetadata,this.omitTracedRuntimeInfo);r?.apiKey!==void 0&&(n["x-api-key"]=r.apiKey),r?.workspaceId!==void 0&&(n["x-tenant-id"]=r.workspaceId);let o=V(s,`Creating run with id: ${s.id}`);await this.caller.call(async()=>{let c=await this._fetch(`${r?.apiUrl??this.apiUrl}/runs`,{method:"POST",headers:n,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:o});return await w(c,"create run",!0),c})}async batchIngestRuns({runCreates:e,runUpdates:r},n){if(e===void 0&&r===void 0)return;let i=await Promise.all(e?.map(c=>this.prepareRunCreateOrUpdateInputs(c))??[]),a=await Promise.all(r?.map(c=>this.prepareRunCreateOrUpdateInputs(c))??[]);if(i.length>0&&a.length>0){let c=i.reduce((l,d)=>(d.id&&(l[d.id]=d),l),{}),u=[];for(let l of a)l.id!==void 0&&c[l.id]?c[l.id]={...c[l.id],...l}:u.push(l);i=Object.values(c),a=u}let s={post:i,patch:a};if(!s.post.length&&!s.patch.length)return;let o={post:[],patch:[]};for(let c of["post","patch"]){let u=c,l=s[u].reverse(),d=l.pop();for(;d!==void 0;)o[u].push(d),d=l.pop()}if(o.post.length>0||o.patch.length>0){let c=o.post.map(u=>u.id).concat(o.patch.map(u=>u.id)).join(",");await this._postBatchIngestRuns(await this._serializeBody(o,`Ingesting runs with ids: ${c}`),n)}}async _postBatchIngestRuns(e,r){let n={...this._mergedHeaders,"Content-Type":"application/json",Accept:"application/json"};r?.apiKey!==void 0&&(n["x-api-key"]=r.apiKey),await this.batchIngestCaller.callWithOptions({sizeBytes:r?.sizeBytes},async()=>{let i=await this._fetch(`${r?.apiUrl??this.apiUrl}/runs/batch`,{method:"POST",headers:n,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:e});return await w(i,"batch create run",!0),i})}async multipartIngestRuns({runCreates:e,runUpdates:r},n){if(e===void 0&&r===void 0)return;let i={},a=[];for(let d of e??[]){let f=await this.prepareRunCreateOrUpdateInputs(d);f.id!==void 0&&f.attachments!==void 0&&(i[f.id]=f.attachments),delete f.attachments,a.push(f)}let s=[];for(let d of r??[])s.push(await this.prepareRunCreateOrUpdateInputs(d));if(a.find(d=>d.trace_id===void 0||d.dotted_order===void 0)!==void 0)throw new Error('Multipart ingest requires "trace_id" and "dotted_order" to be set when creating a run');if(s.find(d=>d.trace_id===void 0||d.dotted_order===void 0)!==void 0)throw new Error('Multipart ingest requires "trace_id" and "dotted_order" to be set when updating a run');if(a.length>0&&s.length>0){let d=a.reduce((h,m)=>(m.id&&(h[m.id]=m),h),{}),f=[];for(let h of s)h.id!==void 0&&d[h.id]?d[h.id]={...d[h.id],...h}:f.push(h);a=Object.values(d),s=f}if(a.length===0&&s.length===0)return;let u=[],l=[];for(let[d,f]of[["post",a],["patch",s]])for(let h of f){let{inputs:m,outputs:y,events:v,extra:E,error:x,serialized:S,attachments:T,...C}=h,$={inputs:m,outputs:y,events:v,extra:E,error:x,serialized:S},N=await this._serializeBody(C,`Serializing for multipart ingestion of run with id: ${C.id}`);l.push({name:`${d}.${C.id}`,payload:new Blob([N],{type:`application/json; length=${N.length}`})});for(let[j,B]of Object.entries($)){if(B===void 0)continue;let Q=await this._serializeBody(B,`Serializing ${j} for multipart ingestion of run with id: ${C.id}`);l.push({name:`${d}.${C.id}.${j}`,payload:new Blob([Q],{type:`application/json; length=${Q.length}`})})}if(C.id!==void 0){let j=i[C.id];if(j){delete i[C.id];for(let[B,Q]of Object.entries(j)){let he,xe;if(Array.isArray(Q)?[he,xe]=Q:(he=Q.mimeType,xe=Q.data),B.includes(".")){console.warn(`Skipping attachment '${B}' for run ${C.id}: Invalid attachment name. Attachment names must not contain periods ('.'). Please rename the attachment and try again.`);continue}l.push({name:`attachment.${C.id}.${B}`,payload:new Blob([xe],{type:`${he}; length=${xe.byteLength}`})})}}}u.push(`trace=${C.trace_id},id=${C.id}`)}await this._sendMultipartRequest(l,u.join("; "),n)}async _createNodeFetchBody(e,r){let n=[];for(let s of e)n.push(new Blob([`--${r}\r
120
+ `])),n.push(new Blob([`Content-Disposition: form-data; name="${s.name}"\r
121
+ `,`Content-Type: ${s.payload.type}\r
122
+ \r
123
+ `])),n.push(s.payload),n.push(new Blob([`\r
124
+ `]));return n.push(new Blob([`--${r}--\r
125
+ `])),await new Blob(n).arrayBuffer()}async _createMultipartStream(e,r){let n=new TextEncoder;return new ReadableStream({async start(a){let s=async o=>{typeof o=="string"?a.enqueue(n.encode(o)):a.enqueue(o)};for(let o of e){await s(`--${r}\r
126
+ `),await s(`Content-Disposition: form-data; name="${o.name}"\r
127
+ `),await s(`Content-Type: ${o.payload.type}\r
128
+ \r
129
+ `);let u=o.payload.stream().getReader();try{let l;for(;!(l=await u.read()).done;)a.enqueue(l.value)}finally{u.releaseLock()}await s(`\r
130
+ `)}await s(`--${r}--\r
131
+ `),a.close()}})}async _sendMultipartRequest(e,r,n){let i="----LangSmithFormBoundary"+Math.random().toString(36).slice(2),a=()=>this._createNodeFetchBody(e,i),s=()=>this._createMultipartStream(e,i),o=async c=>this.batchIngestCaller.callWithOptions({sizeBytes:n?.sizeBytes},async()=>{let u=await c(),l={...this._mergedHeaders,"Content-Type":`multipart/form-data; boundary=${i}`};n?.apiKey!==void 0&&(l["x-api-key"]=n.apiKey);let d=u;n?.useGzip&&typeof u=="object"&&"pipeThrough"in u&&(d=u.pipeThrough(new CompressionStream("gzip")),l["Content-Encoding"]="gzip");let f=await this._fetch(`${n?.apiUrl??this.apiUrl}/runs/multipart`,{method:"POST",headers:l,body:d,duplex:"half",signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(f,"Failed to send multipart request",!0),f});try{let c,u=!1;La()&&!this.multipartStreamingDisabled&&Xe()!=="bun"?(u=!0,c=await o(s)):c=await o(a),(!this.multipartStreamingDisabled||u)&&c.status===422&&(n?.apiUrl??this.apiUrl)!==Ft&&(console.warn(`Streaming multipart upload to ${n?.apiUrl??this.apiUrl}/runs/multipart failed. This usually means the host does not support chunked uploads. Retrying with a buffered upload for operation "${r}".`),this.multipartStreamingDisabled=!0,c=await o(a))}catch(c){if(Ht(c))throw c;if(console.warn(`${c.message.trim()}
132
+
133
+ Context: ${r}`),this.failedTracesDir){let u=await this._createNodeFetchBody(e,i).catch(()=>null);u&&await t._writeTraceToFallbackDir(this.failedTracesDir,u,{"Content-Type":`multipart/form-data; boundary=${i}`},"runs/multipart",this.failedTracesMaxBytes)}}}async updateRun(e,r,n){A(e),r.inputs&&(r.inputs=await this.processInputs(r.inputs)),r.outputs&&(r.outputs=await this.processOutputs(r.outputs)),r.extra!=null&&"metadata"in r.extra&&(r.extra={...r.extra,metadata:await this.processMetadata(r.extra.metadata)}),r.events&&(r.events=this._filterNewTokenEvents(r.events));let i={...r,id:e};if(!this._filterForSampling([i],!0).length)return;if(this.autoBatchTracing&&i.trace_id!==void 0&&i.dotted_order!==void 0){let o=this._cloneCurrentOTELContext();if(r.end_time!==void 0&&i.parent_run_id===void 0&&this.blockOnRootRunFinalization&&!this.manualFlushMode){await this.processRunOperation({action:"update",item:i,otelContext:o,apiKey:n?.apiKey,apiUrl:n?.apiUrl}).catch(console.error);return}else this.processRunOperation({action:"update",item:i,otelContext:o,apiKey:n?.apiKey,apiUrl:n?.apiUrl}).catch(console.error);return}let a={...this._mergedHeaders,"Content-Type":"application/json"};n?.apiKey!==void 0&&(a["x-api-key"]=n.apiKey),n?.workspaceId!==void 0&&(a["x-tenant-id"]=n.workspaceId);let s=V(r,`Serializing payload to update run with id: ${e}`);await this.caller.call(async()=>{let o=await this._fetch(`${n?.apiUrl??this.apiUrl}/runs/${e}`,{method:"PATCH",headers:a,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:s});return await w(o,"update run",!0),o})}async readRun(e,{loadChildRuns:r}={loadChildRuns:!1}){A(e);let n=Ze(await this._get(`/runs/${e}`));return r&&(n=await this._loadChildRuns(n)),n}async getRunUrl({runId:e,run:r,projectOpts:n}){if(r!==void 0){let i;r.session_id?i=r.session_id:n?.projectName?i=(await this.readProject({projectName:n?.projectName})).id:n?.projectId?i=n?.projectId:i=(await this.readProject({projectName:R("PROJECT")||"default"})).id;let a=await this._getTenantId();return`${this.getHostUrl()}/o/${a}/projects/p/${i}/r/${r.id}?poll=true`}else if(e!==void 0){let i=await this.readRun(e);if(!i.app_path)throw new Error(`Run ${e} has no app_path`);return`${this.getHostUrl()}${i.app_path}`}else throw new Error("Must provide either runId or run")}async _loadChildRuns(e){let r=await Kl(this.listRuns({isRoot:!1,projectId:e.session_id,traceId:e.trace_id})),n={},i={};r.sort((a,s)=>(a?.dotted_order??"").localeCompare(s?.dotted_order??""));for(let a of r){if(a.parent_run_id===null||a.parent_run_id===void 0)throw new Error(`Child run ${a.id} has no parent`);a.dotted_order?.startsWith(e.dotted_order??"")&&a.id!==e.id&&(a.parent_run_id in n||(n[a.parent_run_id]=[]),n[a.parent_run_id].push(a),i[a.id]=a)}e.child_runs=n[e.id]||[];for(let a in n)a!==e.id&&(i[a].child_runs=n[a]);return e}async*listRuns(e){let{projectId:r,projectName:n,parentRunId:i,traceId:a,referenceExampleId:s,startTime:o,executionOrder:c,isRoot:u,runType:l,error:d,id:f,query:h,filter:m,traceFilter:y,treeFilter:v,limit:E,select:x,order:S}=e,T=[];if(r&&(T=Array.isArray(r)?r:[r]),n){let j=Array.isArray(n)?n:[n],B=await Promise.all(j.map(Q=>this.readProject({projectName:Q}).then(he=>he.id)));T.push(...B)}let C=["app_path","completion_cost","completion_tokens","dotted_order","end_time","error","events","extra","feedback_stats","first_token_time","id","inputs","name","outputs","parent_run_id","parent_run_ids","prompt_cost","prompt_tokens","reference_example_id","run_type","session_id","start_time","status","tags","total_cost","total_tokens","trace_id"],$={session:T.length?T:null,run_type:l,reference_example:s,query:h,filter:m,trace_filter:y,tree_filter:v,execution_order:c,parent_run:i,start_time:o?o.toISOString():null,error:d,id:f,limit:E,trace:a,select:x||C,is_root:u,order:S};$.select.includes("child_run_ids")&&Ce("Deprecated: 'child_run_ids' in the listRuns select parameter is deprecated and will be removed in a future version.");let N=0;for await(let j of this._getCursorPaginatedList("/runs/query",$)){let B=j.map(Ze);if(E){if(N>=E)break;if(B.length+N>E){yield*B.slice(0,E-N);break}N+=B.length,yield*B}else yield*B}}async*listGroupRuns(e){let{projectId:r,projectName:n,groupBy:i,filter:a,startTime:s,endTime:o,limit:c,offset:u}=e,d={session_id:r||(await this.readProject({projectName:n})).id,group_by:i,filter:a,start_time:s?s.toISOString():null,end_time:o?o.toISOString():null,limit:Number(c)||100},f=Number(u)||0,h="/runs/group",m=`${this.apiUrl}${h}`;for(;;){let y={...d,offset:f},v=Object.fromEntries(Object.entries(y).filter(([$,N])=>N!==void 0)),E=JSON.stringify(v),S=await(await this.caller.call(async()=>{let $=await this._fetch(m,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:E});return await w($,`Failed to fetch ${h}`),$})).json(),{groups:T,total:C}=S;if(T.length===0)break;for(let $ of T)yield $;if(f+=T.length,f>=C)break}}async*readThread(e){let{threadId:r,projectId:n,projectName:i,isRoot:a=!0,limit:s,filter:o,order:c="asc"}=e;if(!n&&!i)throw new Error("threadId requires projectId or projectName");let u=`eq(thread_id, ${JSON.stringify(r)})`,l=o?`and(${u}, ${o})`:u;yield*this.listRuns({projectId:n??void 0,projectName:i??void 0,isRoot:a,limit:s,filter:l,order:c})}async listThreads(e){let{projectId:r,projectName:n,limit:i,offset:a=0,filter:s,startTime:o,isRoot:c=!0}=e;if(!r&&!n)throw new Error("Either projectId or projectName must be provided");if(r&&n)throw new Error("Provide exactly one of projectId or projectName");let u=r??(await this.readProject({projectName:n})).id,l=o??new Date(Date.now()-1440*60*1e3),f={session:[u],is_root:c,limit:100,order:"desc",select:["id","name","status","start_time","end_time","thread_id","trace_id","run_type","error","tags","session_id","parent_run_id","total_tokens","total_cost","dotted_order","reference_example_id","feedback_stats","app_path","completion_cost","completion_tokens","prompt_cost","prompt_tokens","first_token_time"],start_time:l.toISOString()};s!=null&&(f.filter=s);let h=new Map;for await(let E of this._getCursorPaginatedList("/runs/query",f))for(let x of E){let S=Ze(x),T=S.thread_id;if(T){let C=h.get(T)??[];C.push(S),h.set(T,C)}}let m=[];for(let[E,x]of h.entries()){x.sort((N,j)=>{let B=N,Q=j,he=B.start_time??"",xe=Q.start_time??"";if(he!==xe)return he.localeCompare(xe);let to=B.dotted_order??"",ro=Q.dotted_order??"";return to.localeCompare(ro)});let T=[...x.map(N=>N.start_time).filter(Boolean)].sort(),C=T.length?T[0]:"",$=T.length?T[T.length-1]:"";m.push({thread_id:E,runs:x,count:x.length,filter:"",total_tokens:0,total_cost:null,min_start_time:C,max_start_time:$,latency_p50:0,latency_p99:0,feedback_stats:null,first_inputs:"",last_outputs:"",last_error:null})}m.sort((E,x)=>{let S=E.max_start_time??"";return(x.max_start_time??"").localeCompare(S)});let y=a>0?m.slice(a):m;return i!==void 0?y.slice(0,i):y}async getRunStats({id:e,trace:r,parentRun:n,runType:i,projectNames:a,projectIds:s,referenceExampleIds:o,startTime:c,endTime:u,error:l,query:d,filter:f,traceFilter:h,treeFilter:m,isRoot:y,dataSourceType:v}){let E=s||[];a&&(E=[...s||[],...await Promise.all(a.map(N=>this.readProject({projectName:N}).then(j=>j.id)))]);let S=Object.fromEntries(Object.entries({id:e,trace:r,parent_run:n,run_type:i,session:E,reference_example:o,start_time:c,end_time:u,error:l,query:d,filter:f,trace_filter:h,tree_filter:m,is_root:y,data_source_type:v}).filter(([N,j])=>j!==void 0)),T=JSON.stringify(S);return await(await this.caller.call(async()=>{let N=await this._fetch(`${this.apiUrl}/runs/stats`,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:T});return await w(N,"get run stats"),N})).json()}async shareRun(e,{shareId:r}={}){let n={run_id:e,share_token:r||Ie()};A(e);let i=JSON.stringify(n),s=await(await this.caller.call(async()=>{let o=await this._fetch(`${this.apiUrl}/runs/${e}/share`,{method:"PUT",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:i});return await w(o,"share run"),o})).json();if(s===null||!("share_token"in s))throw new Error("Invalid response from server");return`${this.getHostUrl()}/public/${s.share_token}/r`}async unshareRun(e){A(e),await this.caller.call(async()=>{let r=await this._fetch(`${this.apiUrl}/runs/${e}/share`,{method:"DELETE",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(r,"unshare run",!0),r})}async readRunSharedLink(e){A(e);let n=await(await this.caller.call(async()=>{let i=await this._fetch(`${this.apiUrl}/runs/${e}/share`,{method:"GET",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(i,"read run shared link"),i})).json();if(!(n===null||!("share_token"in n)))return`${this.getHostUrl()}/public/${n.share_token}/r`}async listSharedRuns(e,{runIds:r}={}){let n=new URLSearchParams({share_token:e});if(r!==void 0)for(let s of r)n.append("id",s);return A(e),(await(await this.caller.call(async()=>{let s=await this._fetch(`${this.apiUrl}/public/${e}/runs${n}`,{method:"GET",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(s,"list shared runs"),s})).json()).map(Ze)}async readDatasetSharedSchema(e,r){if(!e&&!r)throw new Error("Either datasetId or datasetName must be given");e||(e=(await this.readDataset({datasetName:r})).id),A(e);let i=await(await this.caller.call(async()=>{let a=await this._fetch(`${this.apiUrl}/datasets/${e}/share`,{method:"GET",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(a,"read dataset shared schema"),a})).json();return i.url=`${this.getHostUrl()}/public/${i.share_token}/d`,i}async shareDataset(e,r){if(!e&&!r)throw new Error("Either datasetId or datasetName must be given");e||(e=(await this.readDataset({datasetName:r})).id);let n={dataset_id:e};A(e);let i=JSON.stringify(n),s=await(await this.caller.call(async()=>{let o=await this._fetch(`${this.apiUrl}/datasets/${e}/share`,{method:"PUT",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:i});return await w(o,"share dataset"),o})).json();return s.url=`${this.getHostUrl()}/public/${s.share_token}/d`,s}async unshareDataset(e){A(e),await this.caller.call(async()=>{let r=await this._fetch(`${this.apiUrl}/datasets/${e}/share`,{method:"DELETE",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(r,"unshare dataset",!0),r})}async readSharedDataset(e){return A(e),await(await this.caller.call(async()=>{let i=await this._fetch(`${this.apiUrl}/public/${e}/datasets`,{method:"GET",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(i,"read shared dataset"),i})).json()}async listSharedExamples(e,r){let n={};r?.exampleIds&&(n.id=r.exampleIds);let i=new URLSearchParams;Object.entries(n).forEach(([o,c])=>{Array.isArray(c)?c.forEach(u=>i.append(o,u)):i.append(o,c)});let a=await this.caller.call(async()=>{let o=await this._fetch(`${this.apiUrl}/public/${e}/examples?${i.toString()}`,{method:"GET",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(o,"list shared examples"),o}),s=await a.json();if(!a.ok)throw"detail"in s?new Error(`Failed to list shared examples.
134
+ Status: ${a.status}
135
+ Message: ${Array.isArray(s.detail)?s.detail.join(`
136
+ `):"Unspecified error"}`):new Error(`Failed to list shared examples: ${a.status} ${a.statusText}`);return s.map(o=>({...o,_hostUrl:this.getHostUrl()}))}async createProject({projectName:e,description:r=null,metadata:n=null,upsert:i=!1,projectExtra:a=null,referenceDatasetId:s=null}){let o=i?"?upsert=true":"",c=`${this.apiUrl}/sessions${o}`,u=a||{};n&&(u.metadata=n);let l={name:e,extra:u,description:r};s!==null&&(l.reference_dataset_id=s);let d=JSON.stringify(l);return await(await this.caller.call(async()=>{let m=await this._fetch(c,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:d});return await w(m,"create project"),m})).json()}async updateProject(e,{name:r=null,description:n=null,metadata:i=null,projectExtra:a=null,endTime:s=null}){let o=`${this.apiUrl}/sessions/${e}`,c=a;i&&(c={...c||{},metadata:i});let u=JSON.stringify({name:r,extra:c,description:n,end_time:s?new Date(s).toISOString():null});return await(await this.caller.call(async()=>{let f=await this._fetch(o,{method:"PATCH",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:u});return await w(f,"update project"),f})).json()}async hasProject({projectId:e,projectName:r}){let n="/sessions",i=new URLSearchParams;if(e!==void 0&&r!==void 0)throw new Error("Must provide either projectName or projectId, not both");if(e!==void 0)A(e),n+=`/${e}`;else if(r!==void 0)i.append("name",r);else throw new Error("Must provide projectName or projectId");let a=await this.caller.call(async()=>{let s=await this._fetch(`${this.apiUrl}${n}?${i}`,{method:"GET",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(s,"has project"),s});try{let s=await a.json();return a.ok?Array.isArray(s)?s.length>0:!0:!1}catch{return!1}}async readProject({projectId:e,projectName:r,includeStats:n}){let i="/sessions",a=new URLSearchParams;if(e!==void 0&&r!==void 0)throw new Error("Must provide either projectName or projectId, not both");if(e!==void 0)A(e),i+=`/${e}`;else if(r!==void 0)a.append("name",r);else throw new Error("Must provide projectName or projectId");n!==void 0&&a.append("include_stats",n.toString());let s=await this._get(i,a),o;if(Array.isArray(s)){if(s.length===0)throw new Error(`Project[id=${e}, name=${r}] not found`);o=s[0]}else o=s;return o}async getProjectUrl({projectId:e,projectName:r}){if(e===void 0&&r===void 0)throw new Error("Must provide either projectName or projectId");let n=await this.readProject({projectId:e,projectName:r}),i=await this._getTenantId();return`${this.getHostUrl()}/o/${i}/projects/p/${n.id}`}async getDatasetUrl({datasetId:e,datasetName:r}){if(e===void 0&&r===void 0)throw new Error("Must provide either datasetName or datasetId");let n=await this.readDataset({datasetId:e,datasetName:r}),i=await this._getTenantId();return`${this.getHostUrl()}/o/${i}/datasets/${n.id}`}async _getTenantId(){if(this._tenantId!==null)return this._tenantId;let e=new URLSearchParams({limit:"1"});for await(let r of this._getPaginated("/sessions",e))return this._tenantId=r[0].tenant_id,r[0].tenant_id;throw new Error("No projects found to resolve tenant.")}async*listProjects({projectIds:e,name:r,nameContains:n,referenceDatasetId:i,referenceDatasetName:a,includeStats:s,datasetVersion:o,referenceFree:c,metadata:u}={}){let l=new URLSearchParams;if(e!==void 0)for(let d of e)l.append("id",d);if(r!==void 0&&l.append("name",r),n!==void 0&&l.append("name_contains",n),i!==void 0)l.append("reference_dataset",i);else if(a!==void 0){let d=await this.readDataset({datasetName:a});l.append("reference_dataset",d.id)}s!==void 0&&l.append("include_stats",s.toString()),o!==void 0&&l.append("dataset_version",o),c!==void 0&&l.append("reference_free",c.toString()),u!==void 0&&l.append("metadata",JSON.stringify(u));for await(let d of this._getPaginated("/sessions",l))yield*d}async deleteProject({projectId:e,projectName:r}){let n;if(e===void 0&&r===void 0)throw new Error("Must provide projectName or projectId");if(e!==void 0&&r!==void 0)throw new Error("Must provide either projectName or projectId, not both");e===void 0?n=(await this.readProject({projectName:r})).id:n=e,A(n),await this.caller.call(async()=>{let i=await this._fetch(`${this.apiUrl}/sessions/${n}`,{method:"DELETE",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(i,`delete session ${n} (${r})`,!0),i})}async uploadCsv({csvFile:e,fileName:r,inputKeys:n,outputKeys:i,description:a,dataType:s,name:o}){let c=`${this.apiUrl}/datasets/upload`,u=new FormData,l=new Blob([e],{type:"text/csv"});return u.append("file",l,r),n.forEach(h=>{u.append("input_keys",h)}),i.forEach(h=>{u.append("output_keys",h)}),a&&u.append("description",a),s&&u.append("data_type",s),o&&u.append("name",o),await(await this.caller.call(async()=>{let h=await this._fetch(c,{method:"POST",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:u});return await w(h,"upload CSV"),h})).json()}async createDataset(e,{description:r,dataType:n,inputsSchema:i,outputsSchema:a,metadata:s}={}){let o={name:e,description:r,extra:{source:"sdk",...s?{metadata:s}:{}}};n&&(o.data_type=n),i&&(o.inputs_schema_definition=i),a&&(o.outputs_schema_definition=a);let c=JSON.stringify(o);return await(await this.caller.call(async()=>{let d=await this._fetch(`${this.apiUrl}/datasets`,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:c});return await w(d,"create dataset"),d})).json()}async readDataset({datasetId:e,datasetName:r}){let n="/datasets",i=new URLSearchParams({limit:"1"});if(e&&r)throw new Error("Must provide either datasetName or datasetId, not both");if(e)A(e),n+=`/${e}`;else if(r)i.append("name",r);else throw new Error("Must provide datasetName or datasetId");let a=await this._get(n,i),s;if(Array.isArray(a)){if(a.length===0)throw new Error(`Dataset[id=${e}, name=${r}] not found`);s=a[0]}else s=a;return s}async hasDataset({datasetId:e,datasetName:r}){try{return await this.readDataset({datasetId:e,datasetName:r}),!0}catch(n){if(n instanceof Error&&n.message.toLocaleLowerCase().includes("not found"))return!1;throw n}}async diffDatasetVersions({datasetId:e,datasetName:r,fromVersion:n,toVersion:i}){let a=e;if(a===void 0&&r===void 0)throw new Error("Must provide either datasetName or datasetId");if(a!==void 0&&r!==void 0)throw new Error("Must provide either datasetName or datasetId, not both");a===void 0&&(a=(await this.readDataset({datasetName:r})).id);let s=new URLSearchParams({from_version:typeof n=="string"?n:n.toISOString(),to_version:typeof i=="string"?i:i.toISOString()});return await this._get(`/datasets/${a}/versions/diff`,s)}async readDatasetOpenaiFinetuning({datasetId:e,datasetName:r}){let n="/datasets";if(e===void 0)if(r!==void 0)e=(await this.readDataset({datasetName:r})).id;else throw new Error("Must provide either datasetName or datasetId");return(await(await this._getResponse(`${n}/${e}/openai_ft`)).text()).trim().split(`
137
+ `).map(o=>JSON.parse(o))}async*listDatasets({limit:e=100,offset:r=0,datasetIds:n,datasetName:i,datasetNameContains:a,metadata:s}={}){let o="/datasets",c=new URLSearchParams({limit:e.toString(),offset:r.toString()});if(n!==void 0)for(let u of n)c.append("id",u);i!==void 0&&c.append("name",i),a!==void 0&&c.append("name_contains",a),s!==void 0&&c.append("metadata",JSON.stringify(s));for await(let u of this._getPaginated(o,c))yield*u}async updateDataset(e){let{datasetId:r,datasetName:n,...i}=e;if(!r&&!n)throw new Error("Must provide either datasetName or datasetId");let a=r??(await this.readDataset({datasetName:n})).id;A(a);let s=JSON.stringify(i);return await(await this.caller.call(async()=>{let c=await this._fetch(`${this.apiUrl}/datasets/${a}`,{method:"PATCH",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:s});return await w(c,"update dataset"),c})).json()}async updateDatasetTag(e){let{datasetId:r,datasetName:n,asOf:i,tag:a}=e;if(!r&&!n)throw new Error("Must provide either datasetName or datasetId");let s=r??(await this.readDataset({datasetName:n})).id;A(s);let o=JSON.stringify({as_of:typeof i=="string"?i:i.toISOString(),tag:a});await this.caller.call(async()=>{let c=await this._fetch(`${this.apiUrl}/datasets/${s}/tags`,{method:"PUT",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:o});return await w(c,"update dataset tags",!0),c})}async deleteDataset({datasetId:e,datasetName:r}){let n="/datasets",i=e;if(e!==void 0&&r!==void 0)throw new Error("Must provide either datasetName or datasetId, not both");if(r!==void 0&&(i=(await this.readDataset({datasetName:r})).id),i!==void 0)A(i),n+=`/${i}`;else throw new Error("Must provide datasetName or datasetId");await this.caller.call(async()=>{let a=await this._fetch(this.apiUrl+n,{method:"DELETE",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(a,`delete ${n}`,!0),a})}async createExample(e,r,n){if(Ns(e)&&(r!==void 0||n!==void 0))throw new Error("Cannot provide outputs or options when using ExampleCreate object");let i=r?n?.datasetId:e.dataset_id,a=r?n?.datasetName:e.dataset_name;if(i===void 0&&a===void 0)throw new Error("Must provide either datasetName or datasetId");if(i!==void 0&&a!==void 0)throw new Error("Must provide either datasetName or datasetId, not both");i===void 0&&(i=(await this.readDataset({datasetName:a})).id);let s=(r?n?.createdAt:e.created_at)||new Date,o;Ns(e)?o=e:o={inputs:e,outputs:r,created_at:s?.toISOString(),id:n?.exampleId,metadata:n?.metadata,split:n?.split,source_run_id:n?.sourceRunId,use_source_run_io:n?.useSourceRunIO,use_source_run_attachments:n?.useSourceRunAttachments,attachments:n?.attachments};let c=await this._uploadExamplesMultipart(i,[o]);return await this.readExample(c.example_ids?.[0]??Ie())}async createExamples(e){if(Array.isArray(e)){if(e.length===0)return[];let x=e,S=x[0].dataset_id,T=x[0].dataset_name;if(S===void 0&&T===void 0)throw new Error("Must provide either datasetName or datasetId");if(S!==void 0&&T!==void 0)throw new Error("Must provide either datasetName or datasetId, not both");S===void 0&&(S=(await this.readDataset({datasetName:T})).id);let C=await this._uploadExamplesMultipart(S,x);return await Promise.all(C.example_ids.map(N=>this.readExample(N)))}let{inputs:r,outputs:n,metadata:i,splits:a,sourceRunIds:s,useSourceRunIOs:o,useSourceRunAttachments:c,attachments:u,exampleIds:l,datasetId:d,datasetName:f}=e;if(r===void 0)throw new Error("Must provide inputs when using legacy parameters");let h=d,m=f;if(h===void 0&&m===void 0)throw new Error("Must provide either datasetName or datasetId");if(h!==void 0&&m!==void 0)throw new Error("Must provide either datasetName or datasetId, not both");h===void 0&&(h=(await this.readDataset({datasetName:m})).id);let y=r.map((x,S)=>({dataset_id:h,inputs:x,outputs:n?.[S],metadata:i?.[S],split:a?.[S],id:l?.[S],attachments:u?.[S],source_run_id:s?.[S],use_source_run_io:o?.[S],use_source_run_attachments:c?.[S]})),v=await this._uploadExamplesMultipart(h,y);return await Promise.all(v.example_ids.map(x=>this.readExample(x)))}async createLLMExample(e,r,n){return this.createExample({input:e},{output:r},n)}async createChatExample(e,r,n){let i=e.map(s=>Yr(s)?Zr(s):s),a=Yr(r)?Zr(r):r;return this.createExample({input:i},{output:a},n)}async readExample(e){A(e);let r=`/examples/${e}`,n=await this._get(r),{attachment_urls:i,...a}=n,s=a;return i&&(s.attachments=Object.entries(i).reduce((o,[c,u])=>(o[c.slice(11)]={presigned_url:u.presigned_url,mime_type:u.mime_type},o),{})),s}async*listExamples({datasetId:e,datasetName:r,exampleIds:n,asOf:i,splits:a,inlineS3Urls:s,metadata:o,limit:c,offset:u,filter:l,includeAttachments:d}={}){let f;if(e!==void 0&&r!==void 0)throw new Error("Must provide either datasetName or datasetId, not both");if(e!==void 0)f=e;else if(r!==void 0)f=(await this.readDataset({datasetName:r})).id;else throw new Error("Must provide a datasetName or datasetId");let h=new URLSearchParams({dataset:f}),m=i?typeof i=="string"?i:i?.toISOString():void 0;m&&h.append("as_of",m);let y=s??!0;if(h.append("inline_s3_urls",y.toString()),n!==void 0)for(let E of n)h.append("id",E);if(a!==void 0)for(let E of a)h.append("splits",E);if(o!==void 0){let E=JSON.stringify(o);h.append("metadata",E)}c!==void 0&&h.append("limit",c.toString()),u!==void 0&&h.append("offset",u.toString()),l!==void 0&&h.append("filter",l),d===!0&&["attachment_urls","outputs","metadata"].forEach(E=>h.append("select",E));let v=0;for await(let E of this._getPaginated("/examples",h)){for(let x of E){let{attachment_urls:S,...T}=x,C=T;S&&(C.attachments=Object.entries(S).reduce(($,[N,j])=>($[N.slice(11)]={presigned_url:j.presigned_url,mime_type:j.mime_type||void 0},$),{})),yield C,v++}if(c!==void 0&&v>=c)break}}async deleteExample(e){A(e);let r=`/examples/${e}`;await this.caller.call(async()=>{let n=await this._fetch(this.apiUrl+r,{method:"DELETE",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(n,`delete ${r}`,!0),n})}async deleteExamples(e,r){if(e.forEach(n=>A(n)),r?.hardDelete){let n=this._getPlatformEndpointPath("datasets/examples/delete");await this.caller.call(async()=>{let i=await this._fetch(`${this.apiUrl}${n}`,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},body:JSON.stringify({example_ids:e,hard_delete:!0}),signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(i,"hard delete examples",!0),i})}else{let n=new URLSearchParams;e.forEach(i=>n.append("example_ids",i)),await this.caller.call(async()=>{let i=await this._fetch(`${this.apiUrl}/examples?${n.toString()}`,{method:"DELETE",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(i,"delete examples",!0),i})}}async updateExample(e,r){let n;r?n=e:n=e.id,A(n);let i;r?i={id:n,...r}:i=e;let a;return i.dataset_id!==void 0?a=i.dataset_id:a=(await this.readExample(n)).dataset_id,this._updateExamplesMultipart(a,[i])}async updateExamples(e){let r;return e[0].dataset_id===void 0?r=(await this.readExample(e[0].id)).dataset_id:r=e[0].dataset_id,this._updateExamplesMultipart(r,e)}async readDatasetVersion({datasetId:e,datasetName:r,asOf:n,tag:i}){let a;if(e?a=e:a=(await this.readDataset({datasetName:r})).id,A(a),n&&i||!n&&!i)throw new Error("Exactly one of asOf and tag must be specified.");let s=new URLSearchParams;return n!==void 0&&s.append("as_of",typeof n=="string"?n:n.toISOString()),i!==void 0&&s.append("tag",i),await(await this.caller.call(async()=>{let c=await this._fetch(`${this.apiUrl}/datasets/${a}/version?${s.toString()}`,{method:"GET",headers:{...this._mergedHeaders},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(c,"read dataset version"),c})).json()}async listDatasetSplits({datasetId:e,datasetName:r,asOf:n}){let i;if(e===void 0&&r===void 0)throw new Error("Must provide dataset name or ID");if(e!==void 0&&r!==void 0)throw new Error("Must provide either datasetName or datasetId, not both");e===void 0?i=(await this.readDataset({datasetName:r})).id:i=e,A(i);let a=new URLSearchParams,s=n?typeof n=="string"?n:n?.toISOString():void 0;return s&&a.append("as_of",s),await this._get(`/datasets/${i}/splits`,a)}async updateDatasetSplits({datasetId:e,datasetName:r,splitName:n,exampleIds:i,remove:a=!1}){let s;if(e===void 0&&r===void 0)throw new Error("Must provide dataset name or ID");if(e!==void 0&&r!==void 0)throw new Error("Must provide either datasetName or datasetId, not both");e===void 0?s=(await this.readDataset({datasetName:r})).id:s=e,A(s);let o={split_name:n,examples:i.map(u=>(A(u),u)),remove:a},c=JSON.stringify(o);await this.caller.call(async()=>{let u=await this._fetch(`${this.apiUrl}/datasets/${s}/splits`,{method:"PUT",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:c});return await w(u,"update dataset splits",!0),u})}async createFeedback(e,r,{score:n,value:i,correction:a,comment:s,sourceInfo:o,feedbackSourceType:c="api",sourceRunId:u,feedbackId:l,feedbackConfig:d,projectId:f,comparativeExperimentId:h,sessionId:m,startTime:y}){if(!e&&!f)throw new Error("One of runId or projectId must be provided");if(e&&f)throw new Error("Only one of runId or projectId can be provided");let v={type:c??"api",metadata:o??{}};u!==void 0&&v?.metadata!==void 0&&!v.metadata.__run&&(v.metadata.__run={run_id:u}),v?.metadata!==void 0&&v.metadata.__run?.run_id!==void 0&&A(v.metadata.__run.run_id);let E={id:l??De(),run_id:e,key:r,score:Ms(n),value:i,correction:a,comment:s,feedback_source:v,comparative_experiment_id:h,feedbackConfig:d,session_id:m??f,start_time:y},x=JSON.stringify(E),S=`${this.apiUrl}/feedback`;return await this.caller.call(async()=>{let T=await this._fetch(S,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:x});return await w(T,"create feedback",!0),T}),E}async updateFeedback(e,{score:r,value:n,correction:i,comment:a}){let s={};r!=null&&(s.score=Ms(r)),n!=null&&(s.value=n),i!=null&&(s.correction=i),a!=null&&(s.comment=a),A(e);let o=JSON.stringify(s);await this.caller.call(async()=>{let c=await this._fetch(`${this.apiUrl}/feedback/${e}`,{method:"PATCH",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:o});return await w(c,"update feedback",!0),c})}async readFeedback(e){A(e);let r=`/feedback/${e}`;return await this._get(r)}async deleteFeedback(e){A(e);let r=`/feedback/${e}`;await this.caller.call(async()=>{let n=await this._fetch(this.apiUrl+r,{method:"DELETE",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(n,`delete ${r}`,!0),n})}async*listFeedback({runIds:e,feedbackKeys:r,feedbackSourceTypes:n}={}){let i=new URLSearchParams;if(e)for(let a of e)A(a),i.append("run",a);if(r)for(let a of r)i.append("key",a);if(n)for(let a of n)i.append("source",a);for await(let a of this._getPaginated("/feedback",i))yield*a}async createPresignedFeedbackToken(e,r,{expiration:n,feedbackConfig:i}={}){let a={run_id:e,feedback_key:r,feedback_config:i};n?typeof n=="string"?a.expires_at=n:(n?.hours||n?.minutes||n?.days)&&(a.expires_in=n):a.expires_in={hours:3};let s=JSON.stringify(a);return await(await this.caller.call(async()=>{let c=await this._fetch(`${this.apiUrl}/feedback/tokens`,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:s});return await w(c,"create presigned feedback token"),c})).json()}async createComparativeExperiment({name:e,experimentIds:r,referenceDatasetId:n,createdAt:i,description:a,metadata:s,id:o}){if(r.length===0)throw new Error("At least one experiment is required");if(n||(n=(await this.readProject({projectId:r[0]})).reference_dataset_id),!n==null)throw new Error("A reference dataset is required");let c={id:o,name:e,experiment_ids:r,reference_dataset_id:n,description:a,created_at:(i??new Date)?.toISOString(),extra:{}};s&&(c.extra.metadata=s);let u=JSON.stringify(c);return(await this.caller.call(async()=>{let d=await this._fetch(`${this.apiUrl}/datasets/comparative`,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:u});return await w(d,"create comparative experiment"),d})).json()}async*listPresignedFeedbackTokens(e){A(e);let r=new URLSearchParams({run_id:e});for await(let n of this._getPaginated("/feedback/tokens",r))yield*n}_selectEvalResults(e){let r;return"results"in e?r=e.results:Array.isArray(e)?r=e:r=[e],r}async _logEvaluationFeedback(e,r,n){let i=this._selectEvalResults(e),a=[];for(let s of i){let o=n||{};s.evaluatorInfo&&(o={...s.evaluatorInfo,...o});let c=null;s.targetRunId?c=s.targetRunId:r&&(c=r.id),a.push(await this.createFeedback(c,s.key,{score:s.score,value:s.value,comment:s.comment,correction:s.correction,sourceInfo:o,sourceRunId:s.sourceRunId,feedbackConfig:s.feedbackConfig,feedbackSourceType:"model",sessionId:r?.session_id,startTime:r?.start_time}))}return[i,a]}async logEvaluationFeedback(e,r,n){let[i]=await this._logEvaluationFeedback(e,r,n);return i}async createFeedbackConfig(e){let{feedbackKey:r,feedbackConfig:n,isLowerScoreBetter:i=!1}=e,a={feedback_key:r,feedback_config:n,is_lower_score_better:i};return(await this.caller.call(async()=>{let o=await this._fetch(`${this.apiUrl}/feedback-configs`,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:JSON.stringify(a)});return await w(o,"create feedback config"),o})).json()}async*listFeedbackConfigs(e={}){let{feedbackKeys:r,nameContains:n,limit:i}=e,a=new URLSearchParams;r&&r.forEach(o=>{a.append("key",o)}),n&&a.append("name_contains",n),a.append("limit",(i!==void 0?Math.min(i,100):100).toString());let s=0;for await(let o of this._getPaginated("/feedback-configs",a))if(yield*o,s+=o.length,i!==void 0&&s>=i)break}async updateFeedbackConfig(e,r={}){let{feedbackConfig:n,isLowerScoreBetter:i}=r,a={feedback_key:e};return n!==void 0&&(a.feedback_config=n),i!==void 0&&(a.is_lower_score_better=i),(await this.caller.call(async()=>{let o=await this._fetch(`${this.apiUrl}/feedback-configs`,{method:"PATCH",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:JSON.stringify(a)});return await w(o,"update feedback config"),o})).json()}async deleteFeedbackConfig(e){let r=new URLSearchParams({feedback_key:e});await this.caller.call(async()=>{let n=await this._fetch(`${this.apiUrl}/feedback-configs?${r}`,{method:"DELETE",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(n,"delete feedback config",!0),n})}async*listAnnotationQueues(e={}){let{queueIds:r,name:n,nameContains:i,limit:a}=e,s=new URLSearchParams;r&&r.forEach((c,u)=>{A(c,`queueIds[${u}]`),s.append("ids",c)}),n&&s.append("name",n),i&&s.append("name_contains",i),s.append("limit",(a!==void 0?Math.min(a,100):100).toString());let o=0;for await(let c of this._getPaginated("/annotation-queues",s))if(yield*c,o++,a!==void 0&&o>=a)break}async createAnnotationQueue(e){let{name:r,description:n,queueId:i,rubricInstructions:a,rubricItems:s}=e,o={name:r,description:n,id:i||Ie(),rubric_instructions:a,rubric_items:s},c=JSON.stringify(Object.fromEntries(Object.entries(o).filter(([l,d])=>d!==void 0)));return(await this.caller.call(async()=>{let l=await this._fetch(`${this.apiUrl}/annotation-queues`,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:c});return await w(l,"create annotation queue"),l})).json()}async readAnnotationQueue(e){return(await this.caller.call(async()=>{let n=await this._fetch(`${this.apiUrl}/annotation-queues/${A(e,"queueId")}`,{method:"GET",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(n,"read annotation queue"),n})).json()}async updateAnnotationQueue(e,r){let{name:n,description:i,rubricInstructions:a,rubricItems:s}=r,o={};n!==void 0&&(o.name=n),i!==void 0&&(o.description=i),a!==void 0&&(o.rubric_instructions=a),s!==void 0&&(o.rubric_items=s);let c=JSON.stringify(o);await this.caller.call(async()=>{let u=await this._fetch(`${this.apiUrl}/annotation-queues/${A(e,"queueId")}`,{method:"PATCH",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:c});return await w(u,"update annotation queue",!0),u})}async deleteAnnotationQueue(e){await this.caller.call(async()=>{let r=await this._fetch(`${this.apiUrl}/annotation-queues/${A(e,"queueId")}`,{method:"DELETE",headers:{...this._mergedHeaders,Accept:"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(r,"delete annotation queue",!0),r})}async addRunsToAnnotationQueue(e,r){let n=JSON.stringify(r.map((i,a)=>A(i,`runIds[${a}]`).toString()));await this.caller.call(async()=>{let i=await this._fetch(`${this.apiUrl}/annotation-queues/${A(e,"queueId")}/runs`,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:n});return await w(i,"add runs to annotation queue",!0),i})}async getRunFromAnnotationQueue(e,r){let n=`/annotation-queues/${A(e,"queueId")}/run`,a=await(await this.caller.call(async()=>{let s=await this._fetch(`${this.apiUrl}${n}/${r}`,{method:"GET",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(s,"get run from annotation queue"),s})).json();return Ze(a)}async deleteRunFromAnnotationQueue(e,r){await this.caller.call(async()=>{let n=await this._fetch(`${this.apiUrl}/annotation-queues/${A(e,"queueId")}/runs/${A(r,"queueRunId")}`,{method:"DELETE",headers:{...this._mergedHeaders,Accept:"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(n,"delete run from annotation queue",!0),n})}async getSizeFromAnnotationQueue(e){return(await this.caller.call(async()=>{let n=await this._fetch(`${this.apiUrl}/annotation-queues/${A(e,"queueId")}/size`,{method:"GET",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(n,"get size from annotation queue"),n})).json()}async _currentTenantIsOwner(e){let r=await this._getSettings();return e=="-"||r.tenant_handle===e}async _ownerConflictError(e,r){let n=await this._getSettings();return new Error(`Cannot ${e} for another tenant.
138
+
139
+ Current tenant: ${n.tenant_handle}
140
+
141
+ Requested tenant: ${r}`)}async _getLatestCommitHash(e){let n=await(await this.caller.call(async()=>{let i=await this._fetch(`${this.apiUrl}/commits/${e}/?limit=1&offset=0`,{method:"GET",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(i,"get latest commit hash"),i})).json();if(n.commits.length!==0)return n.commits[0].commit_hash}async _likeOrUnlikePrompt(e,r){let[n,i,a]=z(e),s=JSON.stringify({like:r});return(await this.caller.call(async()=>{let c=await this._fetch(`${this.apiUrl}/likes/${n}/${i}`,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:s});return await w(c,`${r?"like":"unlike"} prompt`),c})).json()}async _getPromptUrl(e){let[r,n,i]=z(e);if(await this._currentTenantIsOwner(r)){let a=await this._getSettings();return i!=="latest"?`${this.getHostUrl()}/prompts/${n}/${i.substring(0,8)}?organizationId=${a.id}`:`${this.getHostUrl()}/prompts/${n}?organizationId=${a.id}`}else return i!=="latest"?`${this.getHostUrl()}/hub/${r}/${n}/${i.substring(0,8)}`:`${this.getHostUrl()}/hub/${r}/${n}`}async promptExists(e){return!!await this.getPrompt(e)}async likePrompt(e){return this._likeOrUnlikePrompt(e,!0)}async unlikePrompt(e){return this._likeOrUnlikePrompt(e,!1)}async*listCommits(e){let[r,n,i]=z(e);for await(let a of this._getPaginated(`/commits/${r}/${n}/`,new URLSearchParams,s=>s.commits))yield*a}async*listPrompts(e){let r=new URLSearchParams;r.append("sort_field",e?.sortField??"updated_at"),r.append("sort_direction","desc"),r.append("is_archived",(!!e?.isArchived).toString()),e?.isPublic!==void 0&&r.append("is_public",e.isPublic.toString()),e?.query&&r.append("query",e.query);for await(let n of this._getPaginated("/repos",r,i=>i.repos))yield*n}async getPrompt(e){let[r,n,i]=z(e),s=await(await this.caller.call(async()=>{let o=await this._fetch(`${this.apiUrl}/repos/${r}/${n}`,{method:"GET",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return o?.status===404?null:(await w(o,"get prompt"),o)}))?.json();return s?.repo?s.repo:null}async createPrompt(e,r){let n=await this._getSettings();if(r?.isPublic&&!n.tenant_handle)throw new Error(`Cannot create a public prompt without first
142
+
143
+ creating a LangChain Hub handle.
144
+ You can add a handle by creating a public prompt at:
145
+
146
+ https://smith.langchain.com/prompts`);let[i,a,s]=z(e);if(!await this._currentTenantIsOwner(i))throw await this._ownerConflictError("create a prompt",i);let o={repo_handle:a,...r?.description&&{description:r.description},...r?.readme&&{readme:r.readme},...r?.tags&&{tags:r.tags},is_public:!!r?.isPublic},c=JSON.stringify(o),u=await this.caller.call(async()=>{let d=await this._fetch(`${this.apiUrl}/repos/`,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:c});return await w(d,"create prompt"),d}),{repo:l}=await u.json();return l}async createCommit(e,r,n){if(!await this.promptExists(e))throw new Error("Prompt does not exist, you must create it first.");let[i,a,s]=z(e),o=n?.parentCommitHash==="latest"||!n?.parentCommitHash?await this._getLatestCommitHash(`${i}/${a}`):n?.parentCommitHash,c={manifest:JSON.parse(JSON.stringify(r)),parent_commit:o,...n?.description!==void 0&&{description:n.description}},u=JSON.stringify(c),d=await(await this.caller.call(async()=>{let f=await this._fetch(`${this.apiUrl}/commits/${i}/${a}`,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:u});return await w(f,"create commit"),f})).json();return this._getPromptUrl(`${i}/${a}${d.commit_hash?`:${d.commit_hash}`:""}`)}async updateExamplesMultipart(e,r=[]){return this._updateExamplesMultipart(e,r)}async _updateExamplesMultipart(e,r=[]){if(!await this._getDatasetExamplesMultiPartSupport())throw new Error("Your LangSmith deployment does not allow using the multipart examples endpoint, please upgrade your deployment to the latest version.");let n=new FormData;for(let s of r){let o=s.id,c={...s.metadata&&{metadata:s.metadata},...s.split&&{split:s.split}},u=V(c,`Serializing body for example with id: ${o}`),l=new Blob([u],{type:"application/json"});if(n.append(o,l),s.inputs){let d=V(s.inputs,`Serializing inputs for example with id: ${o}`),f=new Blob([d],{type:"application/json"});n.append(`${o}.inputs`,f)}if(s.outputs){let d=V(s.outputs,`Serializing outputs whle updating example with id: ${o}`),f=new Blob([d],{type:"application/json"});n.append(`${o}.outputs`,f)}if(s.attachments)for(let[d,f]of Object.entries(s.attachments)){let h,m;Array.isArray(f)?[h,m]=f:(h=f.mimeType,m=f.data);let y=new Blob([m],{type:`${h}; length=${m.byteLength}`});n.append(`${o}.attachment.${d}`,y)}if(s.attachments_operations){let d=V(s.attachments_operations,`Serializing attachments while updating example with id: ${o}`),f=new Blob([d],{type:"application/json"});n.append(`${o}.attachments_operations`,f)}}let i=e??r[0]?.dataset_id;return(await this.caller.call(async()=>{let s=await this._fetch(`${this.apiUrl}${this._getPlatformEndpointPath(`datasets/${i}/examples`)}`,{method:"PATCH",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:n});return await w(s,"update examples"),s})).json()}async uploadExamplesMultipart(e,r=[]){return this._uploadExamplesMultipart(e,r)}async _uploadExamplesMultipart(e,r=[]){if(!await this._getDatasetExamplesMultiPartSupport())throw new Error("Your LangSmith deployment does not allow using the multipart examples endpoint, please upgrade your deployment to the latest version.");let n=new FormData;for(let a of r){let s=(a.id??Ie()).toString(),o={created_at:a.created_at,...a.metadata&&{metadata:a.metadata},...a.split&&{split:a.split},...a.source_run_id&&{source_run_id:a.source_run_id},...a.use_source_run_io&&{use_source_run_io:a.use_source_run_io},...a.use_source_run_attachments&&{use_source_run_attachments:a.use_source_run_attachments}},c=V(o,`Serializing body for uploaded example with id: ${s}`),u=new Blob([c],{type:"application/json"});if(n.append(s,u),a.inputs){let l=V(a.inputs,`Serializing inputs for uploaded example with id: ${s}`),d=new Blob([l],{type:"application/json"});n.append(`${s}.inputs`,d)}if(a.outputs){let l=V(a.outputs,`Serializing outputs for uploaded example with id: ${s}`),d=new Blob([l],{type:"application/json"});n.append(`${s}.outputs`,d)}if(a.attachments)for(let[l,d]of Object.entries(a.attachments)){let f,h;Array.isArray(d)?[f,h]=d:(f=d.mimeType,h=d.data);let m=new Blob([h],{type:`${f}; length=${h.byteLength}`});n.append(`${s}.attachment.${l}`,m)}}return(await this.caller.call(async()=>{let a=await this._fetch(`${this.apiUrl}${this._getPlatformEndpointPath(`datasets/${e}/examples`)}`,{method:"POST",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:n});return await w(a,"upload examples"),a})).json()}async updatePrompt(e,r){if(!await this.promptExists(e))throw new Error("Prompt does not exist, you must create it first.");let[n,i]=z(e);if(!await this._currentTenantIsOwner(n))throw await this._ownerConflictError("update a prompt",n);let a={};if(r?.description!==void 0&&(a.description=r.description),r?.readme!==void 0&&(a.readme=r.readme),r?.tags!==void 0&&(a.tags=r.tags),r?.isPublic!==void 0&&(a.is_public=r.isPublic),r?.isArchived!==void 0&&(a.is_archived=r.isArchived),Object.keys(a).length===0)throw new Error("No valid update options provided");let s=JSON.stringify(a);return(await this.caller.call(async()=>{let c=await this._fetch(`${this.apiUrl}/repos/${n}/${i}`,{method:"PATCH",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:s});return await w(c,"update prompt"),c})).json()}async deletePrompt(e){if(!await this.promptExists(e))throw new Error("Prompt does not exist, you must create it first.");let[r,n,i]=z(e);if(!await this._currentTenantIsOwner(r))throw await this._ownerConflictError("delete a prompt",r);return(await this.caller.call(async()=>{let s=await this._fetch(`${this.apiUrl}/repos/${r}/${n}`,{method:"DELETE",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(s,"delete prompt"),s})).json()}_getPromptCacheKey(e,r){return`${e}${r?":with_model":""}`}async _fetchPromptFromApi(e,r){let[n,i,a]=z(e),o=await(await this.caller.call(async()=>{let c=await this._fetch(`${this.apiUrl}/commits/${n}/${i}/${a}${r?.includeModel?"?include_model=true":""}`,{method:"GET",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(c,"pull prompt commit"),c})).json();return{owner:n,repo:i,commit_hash:o.commit_hash,manifest:o.manifest,examples:o.examples,hub_model_config:o.model_config,hub_model_provider:o.model_provider}}async pullPromptCommit(e,r){zl(e,r?.dangerouslyPullPublicPrompt);let n=this._fetchPromptFromApi.bind(this,e,r);if(!r?.skipCache&&this._promptCache){let i=this._getPromptCacheKey(e,r?.includeModel),a=this._promptCache.get(i,n);if(a)return a;let s=await n();return this._promptCache.set(i,s,n),s}return this._fetchPromptFromApi(e,r)}async _pullPrompt(e,r){let n=await this.pullPromptCommit(e,{includeModel:r?.includeModel,skipCache:r?.skipCache,dangerouslyPullPublicPrompt:r?.dangerouslyPullPublicPrompt});return JSON.stringify(n.manifest)}async pushPrompt(e,r){return await this.promptExists(e)?r&&Object.keys(r).some(i=>i!=="object")&&await this.updatePrompt(e,{description:r?.description,readme:r?.readme,tags:r?.tags,isPublic:r?.isPublic}):await this.createPrompt(e,{description:r?.description,readme:r?.readme,tags:r?.tags,isPublic:r?.isPublic}),r?.object?await this.createCommit(e,r?.object,{parentCommitHash:r?.parentCommitHash,description:r?.commitDescription}):await this._getPromptUrl(e)}async agentExists(e){let[r,n]=z(e);return this._repoExists(r,n)}async skillExists(e){let[r,n]=z(e);return this._repoExists(r,n)}async pullAgent(e,r){return await this._pullDirectory(e,"agent",r?.version)}async pullSkill(e,r){return await this._pullDirectory(e,"skill",r?.version)}async pushAgent(e,r){return this._pushDirectory(e,"agent",r)}async pushSkill(e,r){return this._pushDirectory(e,"skill",r)}async deleteAgent(e){return this._deleteDirectory(e)}async deleteSkill(e){return this._deleteDirectory(e)}async*listAgents(e){yield*this._listReposByType("agent",e)}async*listSkills(e){yield*this._listReposByType("skill",e)}async*_listReposByType(e,r){let n=new URLSearchParams;n.append("repo_type",e),n.append("is_archived",(!!r?.isArchived).toString()),r?.isPublic!==void 0&&n.append("is_public",r.isPublic.toString()),r?.query&&n.append("query",r.query);for await(let i of this._getPaginated("/repos",n,a=>a.repos))yield*i}async _pullDirectory(e,r,n){let[i,a,s]=z(e),o=n??(s!=="latest"?s:void 0),c=new URL(`${this.apiUrl}/v1/platform/hub/repos/${i}/${a}/directories`);return c.searchParams.set("repo_type",r),o&&c.searchParams.set("commit",o),await(await this.caller.call(async()=>{let l=await this._fetch(c.toString(),{method:"GET",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(l,"pull directory"),l})).json()}async _pushDirectory(e,r,n){if(n.parentCommit!==void 0&&(n.parentCommit.length<8||n.parentCommit.length>64))throw new Error("parent_commit must be 8-64 characters");let[i,a]=z(e);if(!await this._currentTenantIsOwner(i))throw await this._ownerConflictError(`push ${r}`,i);if(await this._repoExists(i,a))(n.description!==void 0||n.readme!==void 0||n.tags!==void 0||n.isPublic!==void 0)&&await this._updateRepoMetadata(i,a,n);else{let d=/^[a-z][a-z0-9-_]*$/;if(!d.test(a))throw new Error(`Invalid repo_handle ${JSON.stringify(a)}: must match ${d}`);await this._createRepo(a,r,n)}let s={files:n.files};n.parentCommit&&(s.parent_commit=n.parentCommit);let u=(await(await this.caller.call(async()=>{let d=await this._fetch(`${this.apiUrl}/v1/platform/hub/repos/${i}/${a}/directories/commits`,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:JSON.stringify(s)});return await w(d,`push ${r}`),d})).json()).commit.commit_hash,l=i;return i==="-"&&(l=(await this._getSettings()).tenant_handle||i),`${this.getHostUrl()}/hub/${l}/${a}:${u.slice(0,8)}`}async _deleteDirectory(e){let[r,n]=z(e);if(!await this._currentTenantIsOwner(r))throw await this._ownerConflictError("delete",r);await this.caller.call(async()=>{let i=await this._fetch(`${this.apiUrl}/v1/platform/hub/repos/${r}/${n}/directories`,{method:"DELETE",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(i,"delete directory"),i})}async _repoExists(e,r){try{return await this.caller.call(async()=>{let n=await this._fetch(`${this.apiUrl}/repos/${e}/${r}`,{method:"GET",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await w(n,"check repo exists"),n}),!0}catch(n){if(Ht(n))return!1;throw n}}async _createRepo(e,r,n){let i={repo_handle:e,repo_type:r,is_public:!!n.isPublic};n.description!==void 0&&(i.description=n.description),n.readme!==void 0&&(i.readme=n.readme),n.tags!==void 0&&(i.tags=n.tags);try{await this.caller.call(async()=>{let a=await this._fetch(`${this.apiUrl}/repos/`,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:JSON.stringify(i)});return await w(a,`create ${r}`),a})}catch(a){if(gs(a))return;throw a}}async _updateRepoMetadata(e,r,n){let i={};n.description!==void 0&&(i.description=n.description),n.readme!==void 0&&(i.readme=n.readme),n.tags!==void 0&&(i.tags=n.tags),n.isPublic!==void 0&&(i.is_public=n.isPublic),Object.keys(i).length!==0&&await this.caller.call(async()=>{let a=await this._fetch(`${this.apiUrl}/repos/${e}/${r}`,{method:"PATCH",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:JSON.stringify(i)});return await w(a,"update repo metadata"),a})}async clonePublicDataset(e,r={}){let{sourceApiUrl:n=this.apiUrl,datasetName:i}=r,[a,s]=this.parseTokenOrUrl(e,n),o=new t({apiUrl:a,apiKey:"placeholder"}),c=await o.readSharedDataset(s),u=i||c.name;try{if(await this.hasDataset({datasetId:u})){console.log(`Dataset ${u} already exists in your tenant. Skipping.`);return}}catch{}let l=await o.listSharedExamples(s),d=await this.createDataset(u,{description:c.description,dataType:c.data_type||"kv",inputsSchema:c.inputs_schema_definition??void 0,outputsSchema:c.outputs_schema_definition??void 0});try{await this.createExamples({inputs:l.map(f=>f.inputs),outputs:l.flatMap(f=>f.outputs?[f.outputs]:[]),datasetId:d.id})}catch(f){throw console.error(`An error occurred while creating dataset ${u}. You should delete it manually.`),f}}parseTokenOrUrl(e,r,n=2,i="dataset"){try{return A(e),[r,e]}catch{}try{let s=new URL(e).pathname.split("/").filter(o=>o!=="");if(s.length>=n){let o=s[s.length-n];return[r,o]}else throw new Error(`Invalid public ${i} URL: ${e}`)}catch{throw new Error(`Invalid public ${i} URL or token: ${e}`)}}cleanup(){this._promptCache&&this._promptCache.stop()}async awaitPendingTraceBatches(){if(this.manualFlushMode)return console.warn("[WARNING]: When tracing in manual flush mode, you must call `await client.flush()` manually to submit trace batches."),Promise.resolve();for(await new Promise(e=>setTimeout(e,1));this._pendingDrains.size>0;)await Promise.all([...this._pendingDrains]);await Promise.all([...this.autoBatchQueue.items.map(({itemPromise:e})=>e),this.batchIngestCaller.queue.onIdle()]),this.langSmithToOTELTranslator!==void 0&&await as()?.DEFAULT_LANGSMITH_SPAN_PROCESSOR?.forceFlush()}toString(){let e=[`apiUrl=${JSON.stringify(this.apiUrl)}`];return this.webUrl!==void 0&&e.push(`webUrl=${JSON.stringify(this.webUrl)}`),this.workspaceId!==void 0&&e.push(`workspaceId=${JSON.stringify(this.workspaceId)}`),`[LangSmithClient ${e.join(" ")}]`}[Symbol.for("nodejs.util.inspect.custom")](){return this.toString()}};Object.defineProperty(ye,"_fallbackDirsCreated",{enumerable:!0,configurable:!0,writable:!0,value:new Set});function Ns(t){return"dataset_id"in t||"dataset_name"in t}var ks=t=>t!==void 0?t:!!["TRACING_V2","TRACING"].find(r=>R(r)==="true");var ue=Symbol.for("lc:context_variables");var qt=Symbol.for("langsmith:replica_trace_roots");function ln(t,e){if(ue in t)return t[ue][e]}function Ls(t,e,r){let n=ue in t?t[ue]:{};n[e]=r,t[ue]=n}var et=36,Yl="6ba7b810-9dad-11d1-80b4-00c04fd430c8";function $s(t){let r=Object.keys(t).sort().map(n=>`${n}:${t[n]??""}`).join("|");return br(r,Yl)}function Zl(t){return t.replace(/[-:.]/g,"")}function js(t,e=1){let r=e.toFixed(0).slice(0,3).padStart(3,"0");return`${new Date(t).toISOString().slice(0,-1)}${r}Z`}function un(t,e,r=1){let n=js(t,r);return{dottedOrder:Zl(n)+e,microsecondPrecisionDatestring:n}}var eu=new Set(["projectName","updates","reroot"]);function tu(t){let e={};for(let r of Object.keys(t))eu.has(r)&&(e[r]=t[r]);return e}var Kt=class t{constructor(e,r,n,i){Object.defineProperty(this,"metadata",{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,"project_name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"replicas",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.metadata=e,this.tags=r,this.project_name=n,this.replicas=i}static fromHeader(e){let r=e.split(","),n={},i=[],a,s;for(let o of r){let[c,u]=o.split("="),l=decodeURIComponent(u);c==="langsmith-metadata"?n=JSON.parse(l):c==="langsmith-tags"?i=l.split(","):c==="langsmith-project"?a=l:c==="langsmith-replicas"&&(s=JSON.parse(l).map(f=>Array.isArray(f)?f:tu(f)))}return new t(n,i,a,s)}toHeader(){let e=[];return this.metadata&&Object.keys(this.metadata).length>0&&e.push(`langsmith-metadata=${encodeURIComponent(JSON.stringify(this.metadata))}`),this.tags&&this.tags.length>0&&e.push(`langsmith-tags=${encodeURIComponent(this.tags.join(","))}`),this.project_name&&e.push(`langsmith-project=${encodeURIComponent(this.project_name)}`),e.join(",")}},ae=class t{constructor(e){if(Object.defineProperty(this,"id",{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,"run_type",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"project_name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"parent_run",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"parent_run_id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"child_runs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"start_time",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"end_time",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"extra",{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,"error",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"serialized",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"inputs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"outputs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reference_example_id",{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,"events",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"trace_id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"dotted_order",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tracingEnabled",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"execution_order",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"child_execution_order",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"attachments",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"replicas",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"distributedParentId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_serialized_start_time",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_awaitInputsOnPost",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Ds(e)){Object.assign(this,{...e});return}let r=t.getDefaultConfig(),{metadata:n,...i}=e,a=i.client??t.getSharedClient(),s={...n,...i?.extra?.metadata};if(i.extra={...i.extra,metadata:s},"id"in i&&i.id==null&&delete i.id,Object.assign(this,{...r,...i,client:a}),this.execution_order??=1,this.child_execution_order??=1,this.dotted_order||(this._serialized_start_time=js(this.start_time,this.execution_order)),this.id||(this.id=St(this._serialized_start_time??this.start_time)),this.trace_id||(this.parent_run?this.trace_id=this.parent_run.trace_id??this.id:this.trace_id=this.id),this.replicas=au(this.replicas),!this.dotted_order){let{dottedOrder:o}=un(this.start_time,this.id,this.execution_order);this.parent_run?this.dotted_order=this.parent_run.dotted_order+"."+o:this.dotted_order=o}}set metadata(e){this.extra={...this.extra,metadata:{...this.extra?.metadata,...e}}}get metadata(){return this.extra?.metadata}static getDefaultConfig(){let e=Date.now();return{run_type:"chain",project_name:Je(),child_runs:[],api_url:D("LANGCHAIN_ENDPOINT")??"http://localhost:1984",api_key:D("LANGCHAIN_API_KEY"),caller_options:{},start_time:e,serialized:{},inputs:{},extra:{}}}static getSharedClient(){return t.sharedClient||(t.sharedClient=new ye),t.sharedClient}createChild(e){let r=this.child_execution_order+1,n=this.replicas?.map(f=>{let{reroot:h,...m}=f;return m}),i=e.replicas??n,a=new t({...e,parent_run:this,project_name:this.project_name,replicas:i,client:this.client,tracingEnabled:this.tracingEnabled,execution_order:r,child_execution_order:r}),s=this.extra?.metadata??{},o=a.extra?.metadata??{};Object.keys(s).length>0&&(a.extra={...a.extra,metadata:{...s,...o}}),ue in this&&(a[ue]=this[ue]);let c=Symbol.for("lc:child_config"),u=e.extra?.[c]??this.extra[c];if(nu(u)){let f={...u},h=ru(f.callbacks)?f.callbacks.copy?.():void 0;h&&(Object.assign(h,{_parentRunId:a.id}),h.handlers?.find(Bs)?.updateFromRunTree?.(a),f.callbacks=h),a.extra[c]=f}let l=new Set,d=this;for(;d!=null&&!l.has(d.id);)l.add(d.id),d.child_execution_order=Math.max(d.child_execution_order,r),d=d.parent_run;return this.child_runs.push(a),a}async end(e,r,n=Date.now(),i){this.outputs=this.outputs??e,this.error=this.error??r,this.end_time=this.end_time??n,i&&Object.keys(i).length>0&&(this.extra=this.extra?{...this.extra,metadata:{...this.extra.metadata,...i}}:{metadata:i})}_convertToCreate(e,r,n=!0){let i=e.extra??{};if(i?.runtime?.library===void 0&&(i.runtime||(i.runtime={}),r))for(let[o,c]of Object.entries(r))i.runtime[o]||(i.runtime[o]=c);let a=e.parent_run?.id??e.parent_run_id,s;return n?s=[]:s=e.child_runs.map(o=>this._convertToCreate(o,r,n)),{id:e.id,name:e.name,start_time:e._serialized_start_time??e.start_time,end_time:e.end_time,run_type:e.run_type,reference_example_id:e.reference_example_id,extra:i,serialized:e.serialized,error:e.error,inputs:e.inputs,outputs:e.outputs,session_name:e.project_name,child_runs:s,parent_run_id:a,trace_id:e.trace_id,dotted_order:e.dotted_order,tags:e.tags,attachments:e.attachments,events:e.events}}_sliceParentId(e,r){if(r.dotted_order){let n=r.dotted_order.split("."),i=null;for(let a=0;a<n.length;a++)if(n[a].slice(-et)===e){i=a;break}if(i!==null){let a=n.slice(i+1);r.dotted_order=a.join("."),a.length>0?r.trace_id=a[0].slice(-et):r.trace_id=r.id}}r.parent_run_id===e&&(r.parent_run_id=void 0)}_setReplicaTraceRoot(e,r){let n=ln(this,qt)??{};n[e]=r,Ls(this,qt,n);for(let i of this.child_runs)i._setReplicaTraceRoot(e,r)}_remapForProject(e){let{projectName:r,runtimeEnv:n,excludeChildRuns:i=!0,reroot:a=!1,distributedParentId:s,apiUrl:o,apiKey:c,workspaceId:u}=e,l=this._convertToCreate(this,n,i);if(r===this.project_name)return{...l,session_name:r};if(a){if(s)this._sliceParentId(s,l);else if(l.parent_run_id=void 0,l.dotted_order){let x=l.dotted_order.split(".");x.length>0&&(l.dotted_order=x[x.length-1],l.trace_id=l.id)}let E=$s({projectName:r,apiUrl:o,apiKey:c,workspaceId:u});this._setReplicaTraceRoot(E,l.id)}let d;if(!a){let E=ln(this,qt)??{},x=$s({projectName:r,apiUrl:o,apiKey:c,workspaceId:u});if(d=E[x],d&&(l.trace_id=d,l.dotted_order)){let S=l.dotted_order.split("."),T=null;for(let C=0;C<S.length;C++)if(S[C].slice(-et)===d){T=C;break}if(T!==null){let C=S.slice(T);l.dotted_order=C.join(".")}}}let f=l.id,h=We(f,r),m;l.trace_id?m=We(l.trace_id,r):m=h;let y;l.parent_run_id&&(y=We(l.parent_run_id,r));let v;return l.dotted_order&&(v=l.dotted_order.split(".").map(S=>{let T=S.slice(-et),C=We(T,r);return S.slice(0,-et)+C}).join(".")),{...l,id:h,trace_id:m,parent_run_id:y,dotted_order:v,session_name:r}}async postRun(e=!0){this._awaitInputsOnPost&&(this.inputs=await this.inputs);try{let r=Ot();if(this.replicas&&this.replicas.length>0)for(let{projectName:n,apiKey:i,apiUrl:a,workspaceId:s,reroot:o,client:c}of this.replicas){let u=this._remapForProject({projectName:n??this.project_name,runtimeEnv:r,excludeChildRuns:!0,reroot:o,distributedParentId:this.distributedParentId,apiUrl:a,apiKey:i,workspaceId:s});await(c??this.client).createRun(u,{apiKey:i,apiUrl:a,workspaceId:s})}else{let n=this._convertToCreate(this,r,e);await this.client.createRun(n)}if(!e){Ce("Posting with excludeChildRuns=false is deprecated and will be removed in a future version.");for(let n of this.child_runs)await n.postRun(!1)}this.child_runs=[]}catch(r){console.error(`Error in postRun for run ${this.id}:`,r)}}async patchRun(e){if(this.replicas&&this.replicas.length>0)for(let{projectName:r,apiKey:n,apiUrl:i,workspaceId:a,updates:s,reroot:o,client:c}of this.replicas){let u=this._remapForProject({projectName:r??this.project_name,runtimeEnv:void 0,excludeChildRuns:!0,reroot:o,distributedParentId:this.distributedParentId,apiUrl:i,apiKey:n,workspaceId:a}),l={id:u.id,name:u.name,run_type:u.run_type,start_time:u.start_time,outputs:u.outputs,error:u.error,parent_run_id:u.parent_run_id,session_name:u.session_name,reference_example_id:u.reference_example_id,end_time:u.end_time,dotted_order:u.dotted_order,trace_id:u.trace_id,events:u.events,tags:u.tags,extra:u.extra,attachments:this.attachments,...s};e?.excludeInputs||(l.inputs=u.inputs),await(c??this.client).updateRun(u.id,l,{apiKey:n,apiUrl:i,workspaceId:a})}else try{let r={name:this.name,run_type:this.run_type,start_time:this._serialized_start_time??this.start_time,end_time:this.end_time,error:this.error,outputs:this.outputs,parent_run_id:this.parent_run?.id??this.parent_run_id,reference_example_id:this.reference_example_id,extra:this.extra,events:this.events,dotted_order:this.dotted_order,trace_id:this.trace_id,tags:this.tags,attachments:this.attachments,session_name:this.project_name};e?.excludeInputs||(r.inputs=this.inputs),await this.client.updateRun(this.id,r)}catch(r){console.error(`Error in patchRun for run ${this.id}`,r)}this.child_runs=[]}toJSON(){return this._convertToCreate(this,void 0,!1)}addEvent(e){this.events||(this.events=[]),typeof e=="string"?this.events.push({name:"event",time:new Date().toISOString(),message:e}):this.events.push({...e,time:e.time??new Date().toISOString()})}static fromRunnableConfig(e,r){let n=e?.callbacks,i,a,s,o=ks();if(n){let u=n?.getParentRunId?.()??"",l=n?.handlers?.find(d=>d?.name=="langchain_tracer");i=l?.getRun?.(u),a=l?.projectName,s=l?.client,o=o||!!l}return i?new t({name:i.name,id:i.id,trace_id:i.trace_id,dotted_order:i.dotted_order,client:s,tracingEnabled:o,project_name:a,tags:[...new Set((i?.tags??[]).concat(e?.tags??[]))],extra:{metadata:{...i?.extra?.metadata,...e?.metadata}}}).createChild(r):new t({...r,client:s,tracingEnabled:o,project_name:a})}static fromDottedOrder(e){return this.fromHeaders({"langsmith-trace":e})}static fromHeaders(e,r){let n="get"in e&&typeof e.get=="function"?{"langsmith-trace":e.get("langsmith-trace"),baggage:e.get("baggage")}:e,i=n["langsmith-trace"];if(!i||typeof i!="string")return;let a=i.trim(),s=a.split(".").map(l=>{let[d,f]=l.split("Z");return{strTime:d,time:Date.parse(d+"Z"),uuid:f}}),o=s[0].uuid,c={...r,name:r?.name??"parent",run_type:r?.run_type??"chain",start_time:r?.start_time??Date.now(),id:s.at(-1)?.uuid,trace_id:o,dotted_order:a};if(n.baggage&&typeof n.baggage=="string"){let l=Kt.fromHeader(n.baggage);c.metadata=l.metadata,c.tags=l.tags,c.project_name=l.project_name,c.replicas=l.replicas}let u=new t(c);return u.distributedParentId=u.id,u}toHeaders(e){let r={"langsmith-trace":this.dotted_order,baggage:new Kt(this.extra?.metadata,this.tags,this.project_name,this.replicas).toHeader()};if(e)for(let[n,i]of Object.entries(r))e.set(n,i);return r}};Object.defineProperty(ae,"sharedClient",{enumerable:!0,configurable:!0,writable:!0,value:null});function Ds(t){return t!=null&&typeof t.createChild=="function"&&typeof t.postRun=="function"}function Bs(t){return typeof t=="object"&&t!=null&&typeof t.name=="string"&&t.name==="langchain_tracer"}function Us(t){return Array.isArray(t)&&t.some(e=>Bs(e))}function ru(t){return typeof t=="object"&&t!=null&&Array.isArray(t.handlers)}function nu(t){let e=t?.callbacks;return t!=null&&typeof e=="object"&&(Us(e?.handlers)||Us(e))}function iu(){let t=D("LANGSMITH_RUNS_ENDPOINTS");if(!t)return[];try{let e=JSON.parse(t);if(Array.isArray(e)){let r=[];for(let n of e){if(typeof n!="object"||n===null){console.warn(`Invalid item type in LANGSMITH_RUNS_ENDPOINTS: expected object, got ${typeof n}`);continue}if(typeof n.api_url!="string"){console.warn(`Invalid api_url type in LANGSMITH_RUNS_ENDPOINTS: expected string, got ${typeof n.api_url}`);continue}if(typeof n.api_key!="string"){console.warn(`Invalid api_key type in LANGSMITH_RUNS_ENDPOINTS: expected string, got ${typeof n.api_key}`);continue}r.push({apiUrl:n.api_url.replace(/\/$/,""),apiKey:n.api_key})}return r}else if(typeof e=="object"&&e!==null){su(e);let r=[];for(let[n,i]of Object.entries(e)){let a=n.replace(/\/$/,"");if(typeof i=="string")r.push({apiUrl:a,apiKey:i});else{console.warn(`Invalid value type in LANGSMITH_RUNS_ENDPOINTS for URL ${n}: expected string, got ${typeof i}`);continue}}return r}else return console.warn(`Invalid LANGSMITH_RUNS_ENDPOINTS \u2013 must be valid JSON array of objects with api_url and api_key properties, or object mapping url->apiKey, got ${typeof e}`),[]}catch(e){if(ws(e))throw e;return console.warn("Invalid LANGSMITH_RUNS_ENDPOINTS \u2013 must be valid JSON array of objects with api_url and api_key properties, or object mapping url->apiKey"),[]}}function au(t){return t?t.map(e=>Array.isArray(e)?{projectName:e[0],updates:e[1]}:e):iu()}function su(t){if(Object.keys(t).length>0&&R("ENDPOINT"))throw new Dt}var U_=P({BaseTracer:()=>tt,isBaseTracer:()=>Me}),ou=t=>{if(t)return t.events=t.events??[],t.child_runs=t.child_runs??[],t};function fn(t,e){if(t)return new ae({...t,start_time:t._serialized_start_time??t.start_time,parent_run:fn(e),child_runs:t.child_runs.map(r=>fn(r)).filter(r=>r!==void 0),extra:{...t.extra,runtime:hr()},tracingEnabled:!1})}function dn(t,e){return t&&!Array.isArray(t)&&typeof t=="object"?t:{[e]:t}}function Me(t){return typeof t._addRunToRunMap=="function"}var tt=class extends Ae{runMap=new Map;runTreeMap=new Map;usesRunTreeMap=!1;constructor(t){super(...arguments)}copy(){return this}getRunById(t){if(t!==void 0)return this.usesRunTreeMap?ou(this.runTreeMap.get(t)):this.runMap.get(t)}stringifyError(t){return t instanceof Error?t.message+(t?.stack?`
147
+
148
+ ${t.stack}`:""):typeof t=="string"?t:`${t}`}_addChildRun(t,e){t.child_runs.push(e)}_addRunToRunMap(t){let{dottedOrder:e,microsecondPrecisionDatestring:r}=un(new Date(t.start_time).getTime(),t.id,t.execution_order),n={...t},i=this.getRunById(n.parent_run_id);if(n.parent_run_id!==void 0?i?(this._addChildRun(i,n),i.child_execution_order=Math.max(i.child_execution_order,n.child_execution_order),n.trace_id=i.trace_id,i.dotted_order!==void 0&&(n.dotted_order=[i.dotted_order,e].join("."),n._serialized_start_time=r)):n.parent_run_id=void 0:(n.trace_id=n.id,n.dotted_order=e,n._serialized_start_time=r),this.usesRunTreeMap){let a=fn(n,i);a!==void 0&&this.runTreeMap.set(n.id,a)}else this.runMap.set(n.id,n);return n}async _endTrace(t){let e=t.parent_run_id!==void 0&&this.getRunById(t.parent_run_id);e?e.child_execution_order=Math.max(e.child_execution_order,t.child_execution_order):await this.persistRun(t),await this.onRunUpdate?.(t),this.usesRunTreeMap?this.runTreeMap.delete(t.id):this.runMap.delete(t.id)}_getExecutionOrder(t){let e=t!==void 0&&this.getRunById(t);return e?e.child_execution_order+1:1}_createRunForLLMStart(t,e,r,n,i,a,s,o){let c=this._getExecutionOrder(n),u=Date.now(),l=s?{...i,metadata:s}:i,d={id:r,name:o??t.id[t.id.length-1],parent_run_id:n,start_time:u,serialized:t,events:[{name:"start",time:new Date(u).toISOString()}],inputs:{prompts:e},execution_order:c,child_runs:[],child_execution_order:c,run_type:"llm",extra:l??{},tags:a||[]};return this._addRunToRunMap(d)}async handleLLMStart(t,e,r,n,i,a,s,o){let c=this.getRunById(r)??this._createRunForLLMStart(t,e,r,n,i,a,s,o);return await this.onRunCreate?.(c),await this.onLLMStart?.(c),c}_createRunForChatModelStart(t,e,r,n,i,a,s,o){let c=this._getExecutionOrder(n),u=Date.now(),l=s?{...i,metadata:s}:i,d={id:r,name:o??t.id[t.id.length-1],parent_run_id:n,start_time:u,serialized:t,events:[{name:"start",time:new Date(u).toISOString()}],inputs:{messages:e},execution_order:c,child_runs:[],child_execution_order:c,run_type:"llm",extra:l??{},tags:a||[]};return this._addRunToRunMap(d)}async handleChatModelStart(t,e,r,n,i,a,s,o){let c=this.getRunById(r)??this._createRunForChatModelStart(t,e,r,n,i,a,s,o);return await this.onRunCreate?.(c),await this.onLLMStart?.(c),c}async handleLLMEnd(t,e,r,n,i){let a=this.getRunById(e);if(!a||a?.run_type!=="llm")throw new Error("No LLM run to end.");return a.end_time=Date.now(),a.outputs=t,a.events.push({name:"end",time:new Date(a.end_time).toISOString()}),a.extra={...a.extra,...i},await this.onLLMEnd?.(a),await this._endTrace(a),a}async handleLLMError(t,e,r,n,i){let a=this.getRunById(e);if(!a||a?.run_type!=="llm")throw new Error("No LLM run to end.");return a.end_time=Date.now(),a.error=this.stringifyError(t),a.events.push({name:"error",time:new Date(a.end_time).toISOString()}),a.extra={...a.extra,...i},await this.onLLMError?.(a),await this._endTrace(a),a}_createRunForChainStart(t,e,r,n,i,a,s,o,c){let u=this._getExecutionOrder(n),l=Date.now(),d={id:r,name:o??t.id[t.id.length-1],parent_run_id:n,start_time:l,serialized:t,events:[{name:"start",time:new Date(l).toISOString()}],inputs:e,execution_order:u,child_execution_order:u,run_type:s??"chain",child_runs:[],extra:a?{...c,metadata:a}:{...c},tags:i||[]};return this._addRunToRunMap(d)}async handleChainStart(t,e,r,n,i,a,s,o){let c=this.getRunById(r)??this._createRunForChainStart(t,e,r,n,i,a,s,o);return await this.onRunCreate?.(c),await this.onChainStart?.(c),c}async handleChainEnd(t,e,r,n,i){let a=this.getRunById(e);if(!a)throw new Error("No chain run to end.");return a.end_time=Date.now(),a.outputs=dn(t,"output"),a.events.push({name:"end",time:new Date(a.end_time).toISOString()}),i?.inputs!==void 0&&(a.inputs=dn(i.inputs,"input")),await this.onChainEnd?.(a),await this._endTrace(a),a}async handleChainError(t,e,r,n,i){let a=this.getRunById(e);if(!a)throw new Error("No chain run to end.");return a.end_time=Date.now(),a.error=this.stringifyError(t),a.events.push({name:"error",time:new Date(a.end_time).toISOString()}),i?.inputs!==void 0&&(a.inputs=dn(i.inputs,"input")),await this.onChainError?.(a),await this._endTrace(a),a}_createRunForToolStart(t,e,r,n,i,a,s){let o=this._getExecutionOrder(n),c=Date.now(),u={id:r,name:s??t.id[t.id.length-1],parent_run_id:n,start_time:c,serialized:t,events:[{name:"start",time:new Date(c).toISOString()}],inputs:{input:e},execution_order:o,child_execution_order:o,run_type:"tool",child_runs:[],extra:a?{metadata:a}:{},tags:i||[]};return this._addRunToRunMap(u)}async handleToolStart(t,e,r,n,i,a,s){let o=this.getRunById(r)??this._createRunForToolStart(t,e,r,n,i,a,s);return await this.onRunCreate?.(o),await this.onToolStart?.(o),o}async handleToolEnd(t,e){let r=this.getRunById(e);if(!r||r?.run_type!=="tool")throw new Error("No tool run to end");return r.end_time=Date.now(),r.outputs={output:t},r.events.push({name:"end",time:new Date(r.end_time).toISOString()}),await this.onToolEnd?.(r),await this._endTrace(r),r}async handleToolError(t,e){let r=this.getRunById(e);if(!r||r?.run_type!=="tool")throw new Error("No tool run to end");return r.end_time=Date.now(),r.error=this.stringifyError(t),r.events.push({name:"error",time:new Date(r.end_time).toISOString()}),await this.onToolError?.(r),await this._endTrace(r),r}async handleAgentAction(t,e){let r=this.getRunById(e);if(!r||r?.run_type!=="chain")return;let n=r;n.actions=n.actions||[],n.actions.push(t),n.events.push({name:"agent_action",time:new Date().toISOString(),kwargs:{action:t}}),await this.onAgentAction?.(r)}async handleAgentEnd(t,e){let r=this.getRunById(e);!r||r?.run_type!=="chain"||(r.events.push({name:"agent_end",time:new Date().toISOString(),kwargs:{action:t}}),await this.onAgentEnd?.(r))}_createRunForRetrieverStart(t,e,r,n,i,a,s){let o=this._getExecutionOrder(n),c=Date.now(),u={id:r,name:s??t.id[t.id.length-1],parent_run_id:n,start_time:c,serialized:t,events:[{name:"start",time:new Date(c).toISOString()}],inputs:{query:e},execution_order:o,child_execution_order:o,run_type:"retriever",child_runs:[],extra:a?{metadata:a}:{},tags:i||[]};return this._addRunToRunMap(u)}async handleRetrieverStart(t,e,r,n,i,a,s){let o=this.getRunById(r)??this._createRunForRetrieverStart(t,e,r,n,i,a,s);return await this.onRunCreate?.(o),await this.onRetrieverStart?.(o),o}async handleRetrieverEnd(t,e){let r=this.getRunById(e);if(!r||r?.run_type!=="retriever")throw new Error("No retriever run to end");return r.end_time=Date.now(),r.outputs={documents:t},r.events.push({name:"end",time:new Date(r.end_time).toISOString()}),await this.onRetrieverEnd?.(r),await this._endTrace(r),r}async handleRetrieverError(t,e){let r=this.getRunById(e);if(!r||r?.run_type!=="retriever")throw new Error("No retriever run to end");return r.end_time=Date.now(),r.error=this.stringifyError(t),r.events.push({name:"error",time:new Date(r.end_time).toISOString()}),await this.onRetrieverError?.(r),await this._endTrace(r),r}async handleText(t,e){let r=this.getRunById(e);!r||r?.run_type!=="chain"||(r.events.push({name:"text",time:new Date().toISOString(),kwargs:{text:t}}),await this.onText?.(r))}async handleLLMNewToken(t,e,r,n,i,a){let s=this.getRunById(r);if(!s||s?.run_type!=="llm")throw new Error('Invalid "runId" provided to "handleLLMNewToken" callback.');return s.events.push({name:"new_token",time:new Date().toISOString(),kwargs:{token:t,idx:e,chunk:a?.chunk}}),await this.onLLMNewToken?.(s,t,{chunk:a?.chunk}),s}};var F_=P({ConsoleCallbackHandler:()=>Jt}),Fs={bold:{open:"\x1B[1m",close:"\x1B[22m"},color:{grey:{open:"\x1B[90m",close:"\x1B[39m"},green:{open:"\x1B[32m",close:"\x1B[39m"},cyan:{open:"\x1B[36m",close:"\x1B[39m"},red:{open:"\x1B[31m",close:"\x1B[39m"},blue:{open:"\x1B[34m",close:"\x1B[39m"}}};function J(t,e){return`${t.open}${e}${t.close}`}function ne(t,e){try{return JSON.stringify(t,null,2)}catch{return e}}function Hs(t){return typeof t=="string"?t.trim():t==null?t:ne(t,t.toString())}function be(t){if(!t.end_time)return"";let e=t.end_time-t.start_time;return e<1e3?`${e}ms`:`${(e/1e3).toFixed(2)}s`}var{color:X}=Fs,Jt=class extends tt{name="console_callback_handler";persistRun(t){return Promise.resolve()}getParents(t){let e=[],r=t;for(;r.parent_run_id;){let n=this.runMap.get(r.parent_run_id);if(n)e.push(n),r=n;else break}return e}getBreadcrumbs(t){let e=[...this.getParents(t).reverse(),t].map((r,n,i)=>{let a=`${r.execution_order}:${r.run_type}:${r.name}`;return n===i.length-1?J(Fs.bold,a):a}).join(" > ");return J(X.grey,e)}onChainStart(t){let e=this.getBreadcrumbs(t);console.log(`${J(X.green,"[chain/start]")} [${e}] Entering Chain run with input: ${ne(t.inputs,"[inputs]")}`)}onChainEnd(t){let e=this.getBreadcrumbs(t);console.log(`${J(X.cyan,"[chain/end]")} [${e}] [${be(t)}] Exiting Chain run with output: ${ne(t.outputs,"[outputs]")}`)}onChainError(t){let e=this.getBreadcrumbs(t);console.log(`${J(X.red,"[chain/error]")} [${e}] [${be(t)}] Chain run errored with error: ${ne(t.error,"[error]")}`)}onLLMStart(t){let e=this.getBreadcrumbs(t),r="prompts"in t.inputs?{prompts:t.inputs.prompts.map(n=>n.trim())}:t.inputs;console.log(`${J(X.green,"[llm/start]")} [${e}] Entering LLM run with input: ${ne(r,"[inputs]")}`)}onLLMEnd(t){let e=this.getBreadcrumbs(t);console.log(`${J(X.cyan,"[llm/end]")} [${e}] [${be(t)}] Exiting LLM run with output: ${ne(t.outputs,"[response]")}`)}onLLMError(t){let e=this.getBreadcrumbs(t);console.log(`${J(X.red,"[llm/error]")} [${e}] [${be(t)}] LLM run errored with error: ${ne(t.error,"[error]")}`)}onToolStart(t){let e=this.getBreadcrumbs(t);console.log(`${J(X.green,"[tool/start]")} [${e}] Entering Tool run with input: "${Hs(t.inputs.input)}"`)}onToolEnd(t){let e=this.getBreadcrumbs(t);console.log(`${J(X.cyan,"[tool/end]")} [${e}] [${be(t)}] Exiting Tool run with output: "${Hs(t.outputs?.output)}"`)}onToolError(t){let e=this.getBreadcrumbs(t);console.log(`${J(X.red,"[tool/error]")} [${e}] [${be(t)}] Tool run errored with error: ${ne(t.error,"[error]")}`)}onRetrieverStart(t){let e=this.getBreadcrumbs(t);console.log(`${J(X.green,"[retriever/start]")} [${e}] Entering Retriever run with input: ${ne(t.inputs,"[inputs]")}`)}onRetrieverEnd(t){let e=this.getBreadcrumbs(t);console.log(`${J(X.cyan,"[retriever/end]")} [${e}] [${be(t)}] Exiting Retriever run with output: ${ne(t.outputs,"[outputs]")}`)}onRetrieverError(t){let e=this.getBreadcrumbs(t);console.log(`${J(X.red,"[retriever/error]")} [${e}] [${be(t)}] Retriever run errored with error: ${ne(t.error,"[error]")}`)}onAgentAction(t){let e=t,r=this.getBreadcrumbs(t);console.log(`${J(X.blue,"[agent/action]")} [${r}] Agent selected action: ${ne(e.actions[e.actions.length-1],"[action]")}`)}};var hn,Wt=()=>(hn===void 0&&(hn=new ye(ie("LANGCHAIN_CALLBACKS_BACKGROUND")==="false"?{blockOnRootRunFinalization:!0}:{})),hn);var mn=class{getStore(){}run(e,r){return r()}},pn=Symbol.for("ls:tracing_async_local_storage"),cu=new mn,_n=class{getInstance(){return globalThis[pn]??cu}initializeGlobalInstance(e){globalThis[pn]===void 0&&(globalThis[pn]=e)}},lu=new _n;function Gs(t=!1){let e=lu.getInstance().getStore();if(!t&&e===void 0)throw new Error(`Could not get the current run tree.
149
+
150
+ Please make sure you are calling this method within a traceable function and that tracing is enabled.`);return e}function X_(t){return typeof t=="function"&&"langsmith:traceable"in t}var cg=P({LangChainTracer:()=>Ee,OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS:()=>yn}),yn=new Set(["ls_agent_type"]);function uu(t){let e;for(let r of t)for(let n of r)$e.isInstance(n.message)&&n.message.usage_metadata!==void 0&&(e=lt(e,n.message.usage_metadata));return e}var Ee=class gn extends tt{fields;name="langchain_tracer";projectName;exampleId;client;replicas;usesRunTreeMap=!0;tracingMetadata;tracingTags=[];constructor(e={}){super(e),this.fields=e;let{exampleId:r,projectName:n,client:i,replicas:a,metadata:s,tags:o}=e;this.projectName=n??Je(),this.replicas=a,this.exampleId=r,this.client=i??Wt(),this.tracingMetadata=s?{...s}:void 0,this.tracingTags=o??[];let c=gn.getTraceableRunTree();c&&this.updateFromRunTree(c)}async persistRun(e){}async onRunCreate(e){zs(this,e),e.extra?.lc_defers_inputs||await this.getRunTreeWithTracingConfig(e.id)?.postRun()}async onRunUpdate(e){zs(this,e);let r=this.getRunTreeWithTracingConfig(e.id);e.extra?.lc_defers_inputs?await r?.postRun():await r?.patchRun()}onLLMEnd(e){let r=e.outputs;if(r?.generations){let n=uu(r.generations);if(n!==void 0){e.extra=e.extra??{};let i=e.extra.metadata??{};i.usage_metadata=n,e.extra.metadata=i}}}copyWithTracingConfig({metadata:e,tags:r}){let n;if(e===void 0)n=this.tracingMetadata?{...this.tracingMetadata}:void 0;else if(this.tracingMetadata===void 0)n={...e};else{n={...this.tracingMetadata};for(let[s,o]of Object.entries(e))(!Object.prototype.hasOwnProperty.call(n,s)||yn.has(s))&&(n[s]=o)}let i=r?Array.from(new Set([...this.tracingTags,...r])):[...this.tracingTags],a=new gn({...this.fields,metadata:n,tags:i});return a.runMap=this.runMap,a.runTreeMap=this.runTreeMap,a}_getRunStoreKey(){return this.runTreeMap}getRun(e){return this.runTreeMap.get(e)}updateFromRunTree(e){this.runTreeMap.set(e.id,e);let r=e,n=new Set;for(;r.parent_run&&!(n.has(r.id)||(n.add(r.id),!r.parent_run));)r=r.parent_run;n.clear();let i=[r];for(;i.length>0;){let a=i.shift();!a||n.has(a.id)||(n.add(a.id),this.runTreeMap.set(a.id,a),a.child_runs&&i.push(...a.child_runs))}this.client=e.client??this.client,this.replicas=e.replicas??this.replicas,this.projectName=e.project_name??this.projectName,this.exampleId=e.reference_example_id??this.exampleId,this.fields={...this.fields,client:this.client,replicas:this.replicas,projectName:this.projectName,exampleId:this.exampleId}}getRunTreeWithTracingConfig(e){let r=this.runTreeMap.get(e);if(r)return new ae({...r,client:this.client,project_name:this.projectName,replicas:this.replicas,reference_example_id:this.exampleId,tracingEnabled:!0})}static getTraceableRunTree(){try{return Gs(!0)}catch{return}}static[Symbol.hasInstance](e){if(typeof e!="object"||e===null)return!1;let r=e;return"name"in r&&r.name==="langchain_tracer"&&"copyWithTracingConfig"in r&&typeof r.copyWithTracingConfig=="function"&&"getRunTreeWithTracingConfig"in r&&typeof r.getRunTreeWithTracingConfig=="function"}};function zs(t,e){if(t.tracingMetadata){e.extra??={};let r=e.extra.metadata??{},n=!1;for(let[i,a]of Object.entries(t.tracingMetadata))(!Object.prototype.hasOwnProperty.call(r,i)||yn.has(i))&&r[i]!==a&&(r[i]=a,n=!0);n&&(e.extra.metadata=r)}t.tracingTags.length>0&&(e.tags=Array.from(new Set([...e.tags??[],...t.tracingTags])))}var Vs=Symbol.for("ls:tracing_async_local_storage"),ve=Symbol.for("lc:context_variables"),qs=t=>{globalThis[Vs]=t},Se=()=>globalThis[Vs];var Xt=Sn(Qr(),1),Ne;function du(){return new("default"in Xt.default?Xt.default.default:Xt.default)({autoStart:!0,concurrency:1})}function fu(){return typeof Ne>"u"&&(Ne=du()),Ne}async function k(t,e){if(e===!0){let r=Se();r!==void 0?await r.run(void 0,async()=>t()):await t()}else Ne=fu(),Ne.add(async()=>{let r=Se();r!==void 0?await r.run(void 0,async()=>t()):await t()})}async function Ks(){let t=Wt();await Promise.allSettled([typeof Ne<"u"?Ne.onIdle():Promise.resolve(),t.awaitPendingTraceBatches()])}var _g=P({awaitAllCallbacks:()=>Ks,consumeCallback:()=>k});var Js=t=>t!==void 0?t:!!["LANGSMITH_TRACING_V2","LANGCHAIN_TRACING_V2","LANGSMITH_TRACING","LANGCHAIN_TRACING"].find(e=>ie(e)==="true");function wn(t){let e=Se();if(e!==void 0)return e.getStore()?.[ve]?.[t]}var hu=Symbol("lc:configure_hooks"),Ws=()=>wn(hu)||[];var Lg=P({BaseCallbackManager:()=>Xs,BaseRunManager:()=>nt,CallbackManager:()=>fe,CallbackManagerForChainRun:()=>Ys,CallbackManagerForLLMRun:()=>En,CallbackManagerForRetrieverRun:()=>Qs,CallbackManagerForToolRun:()=>Zs,ensureHandler:()=>Ve,parseCallbackConfigArg:()=>_u});function bn(t){return t._getRunStoreKey?.()??t}function pu(t,e){return t===e?t:t.copyWithTracingConfig({metadata:e.tracingMetadata,tags:e.tracingTags})}function mu(t,e){let r=new Set(e),n=new Map,i=[],a=o=>{let c=bn(o),u=r.has(o),l=n.get(c);if(l===void 0){n.set(c,{index:i.length,tracer:o,hasInheritable:u}),i.push(o);return}u&&!l.hasInheritable?(l.tracer=o,l.hasInheritable=!0):(u||!l.hasInheritable)&&(l.tracer=pu(l.tracer,o)),i[l.index]=l.tracer};for(let o of t)o instanceof Ee?a(o):i.push(o);for(let o of e)o instanceof Ee&&!n.has(bn(o))&&a(o);let s=new Set;return{handlers:i,inheritableHandlers:e.flatMap(o=>{if(!(o instanceof Ee))return[o];let c=bn(o);return s.has(c)?[]:(s.add(c),[n.get(c)?.tracer??o])})}}function _u(t){return t?Array.isArray(t)||"name"in t?{callbacks:t}:t:{}}var Xs=class{setHandler(t){return this.setHandlers([t])}},nt=class{runId;handlers;inheritableHandlers;tags;inheritableTags;metadata;inheritableMetadata;_parentRunId;constructor(t,e,r,n,i,a,s,o){this.runId=t,this.handlers=e,this.inheritableHandlers=r,this.tags=n,this.inheritableTags=i,this.metadata=a,this.inheritableMetadata=s,this._parentRunId=o}get parentRunId(){return this._parentRunId}async handleText(t){await Promise.all(this.handlers.map(e=>k(async()=>{try{await e.handleText?.(t,this.runId,this._parentRunId,this.tags)}catch(r){if((e.raiseError?console.error:console.warn)(`Error in handler ${e.constructor.name}, handleText: ${r}`),e.raiseError)throw r}},e.awaitHandlers)))}async handleCustomEvent(t,e,r,n,i){await Promise.all(this.handlers.map(a=>k(async()=>{try{await a.handleCustomEvent?.(t,e,this.runId,this.tags,this.metadata)}catch(s){if((a.raiseError?console.error:console.warn)(`Error in handler ${a.constructor.name}, handleCustomEvent: ${s}`),a.raiseError)throw s}},a.awaitHandlers)))}},Qs=class extends nt{getChild(t){let e=new fe(this.runId);return e.setHandlers(this.inheritableHandlers),e.addTags(this.inheritableTags),e.addMetadata(this.inheritableMetadata),t&&e.addTags([t],!1),e}async handleRetrieverEnd(t){await Promise.all(this.handlers.map(e=>k(async()=>{if(!e.ignoreRetriever)try{await e.handleRetrieverEnd?.(t,this.runId,this._parentRunId,this.tags)}catch(r){if((e.raiseError?console.error:console.warn)(`Error in handler ${e.constructor.name}, handleRetriever`),e.raiseError)throw r}},e.awaitHandlers)))}async handleRetrieverError(t){await Promise.all(this.handlers.map(e=>k(async()=>{if(!e.ignoreRetriever)try{await e.handleRetrieverError?.(t,this.runId,this._parentRunId,this.tags)}catch(r){if((e.raiseError?console.error:console.warn)(`Error in handler ${e.constructor.name}, handleRetrieverError: ${r}`),e.raiseError)throw t}},e.awaitHandlers)))}},En=class extends nt{async handleLLMNewToken(t,e,r,n,i,a){await Promise.all(this.handlers.map(s=>k(async()=>{if(!s.ignoreLLM)try{await s.handleLLMNewToken?.(t,e??{prompt:0,completion:0},this.runId,this._parentRunId,this.tags,a)}catch(o){if((s.raiseError?console.error:console.warn)(`Error in handler ${s.constructor.name}, handleLLMNewToken: ${o}`),s.raiseError)throw o}},s.awaitHandlers)))}async handleChatModelStreamEvent(t){await Promise.all(this.handlers.map(e=>k(async()=>{if(!e.ignoreLLM)try{await e.handleChatModelStreamEvent?.(t,this.runId,this._parentRunId,this.tags)}catch(r){if((e.raiseError?console.error:console.warn)(`Error in handler ${e.constructor.name}, handleChatModelStreamEvent: ${r}`),e.raiseError)throw r}},e.awaitHandlers)))}async handleLLMError(t,e,r,n,i){await Promise.all(this.handlers.map(a=>k(async()=>{if(!a.ignoreLLM)try{await a.handleLLMError?.(t,this.runId,this._parentRunId,this.tags,i)}catch(s){if((a.raiseError?console.error:console.warn)(`Error in handler ${a.constructor.name}, handleLLMError: ${s}`),a.raiseError)throw s}},a.awaitHandlers)))}async handleLLMEnd(t,e,r,n,i){await Promise.all(this.handlers.map(a=>k(async()=>{if(!a.ignoreLLM)try{await a.handleLLMEnd?.(t,this.runId,this._parentRunId,this.tags,i)}catch(s){if((a.raiseError?console.error:console.warn)(`Error in handler ${a.constructor.name}, handleLLMEnd: ${s}`),a.raiseError)throw s}},a.awaitHandlers)))}},Ys=class extends nt{getChild(t){let e=new fe(this.runId);return e.setHandlers(this.inheritableHandlers),e.addTags(this.inheritableTags),e.addMetadata(this.inheritableMetadata),t&&e.addTags([t],!1),e}async handleChainError(t,e,r,n,i){await Promise.all(this.handlers.map(a=>k(async()=>{if(!a.ignoreChain)try{await a.handleChainError?.(t,this.runId,this._parentRunId,this.tags,i)}catch(s){if((a.raiseError?console.error:console.warn)(`Error in handler ${a.constructor.name}, handleChainError: ${s}`),a.raiseError)throw s}},a.awaitHandlers)))}async handleChainEnd(t,e,r,n,i){await Promise.all(this.handlers.map(a=>k(async()=>{if(!a.ignoreChain)try{await a.handleChainEnd?.(t,this.runId,this._parentRunId,this.tags,i)}catch(s){if((a.raiseError?console.error:console.warn)(`Error in handler ${a.constructor.name}, handleChainEnd: ${s}`),a.raiseError)throw s}},a.awaitHandlers)))}async handleAgentAction(t){await Promise.all(this.handlers.map(e=>k(async()=>{if(!e.ignoreAgent)try{await e.handleAgentAction?.(t,this.runId,this._parentRunId,this.tags)}catch(r){if((e.raiseError?console.error:console.warn)(`Error in handler ${e.constructor.name}, handleAgentAction: ${r}`),e.raiseError)throw r}},e.awaitHandlers)))}async handleAgentEnd(t){await Promise.all(this.handlers.map(e=>k(async()=>{if(!e.ignoreAgent)try{await e.handleAgentEnd?.(t,this.runId,this._parentRunId,this.tags)}catch(r){if((e.raiseError?console.error:console.warn)(`Error in handler ${e.constructor.name}, handleAgentEnd: ${r}`),e.raiseError)throw r}},e.awaitHandlers)))}},Zs=class extends nt{getChild(t){let e=new fe(this.runId);return e.setHandlers(this.inheritableHandlers),e.addTags(this.inheritableTags),e.addMetadata(this.inheritableMetadata),t&&e.addTags([t],!1),e}async handleToolError(t){await Promise.all(this.handlers.map(e=>k(async()=>{if(!e.ignoreAgent)try{await e.handleToolError?.(t,this.runId,this._parentRunId,this.tags)}catch(r){if((e.raiseError?console.error:console.warn)(`Error in handler ${e.constructor.name}, handleToolError: ${r}`),e.raiseError)throw r}},e.awaitHandlers)))}async handleToolEvent(t){await Promise.all(this.handlers.map(e=>k(async()=>{if(!e.ignoreAgent)try{await e.handleToolEvent?.(t,this.runId,this._parentRunId,this.tags)}catch(r){if(e.raiseError)throw r}},e.awaitHandlers)))}async handleToolEnd(t){await Promise.all(this.handlers.map(e=>k(async()=>{if(!e.ignoreAgent)try{await e.handleToolEnd?.(t,this.runId,this._parentRunId,this.tags)}catch(r){if((e.raiseError?console.error:console.warn)(`Error in handler ${e.constructor.name}, handleToolEnd: ${r}`),e.raiseError)throw r}},e.awaitHandlers)))}},fe=class rt extends Xs{handlers=[];inheritableHandlers=[];tags=[];inheritableTags=[];metadata={};inheritableMetadata={};name="callback_manager";_parentRunId;constructor(e,r){super(),this.handlers=r?.handlers??this.handlers,this.inheritableHandlers=r?.inheritableHandlers??this.inheritableHandlers,this.tags=r?.tags??this.tags,this.inheritableTags=r?.inheritableTags??this.inheritableTags,this.metadata=r?.metadata??this.metadata,this.inheritableMetadata=r?.inheritableMetadata??this.inheritableMetadata,this._parentRunId=e}getParentRunId(){return this._parentRunId}async handleLLMStart(e,r,n=void 0,i=void 0,a=void 0,s=void 0,o=void 0,c=void 0){return Promise.all(r.map(async(u,l)=>{let d=l===0&&n?n:se();return await Promise.all(this.handlers.map(f=>{if(!f.ignoreLLM)return Me(f)&&f._createRunForLLMStart(e,[u],d,this._parentRunId,a,this.tags,this.metadata,c),k(async()=>{try{await f.handleLLMStart?.(e,[u],d,this._parentRunId,a,this.tags,this.metadata,c)}catch(h){if((f.raiseError?console.error:console.warn)(`Error in handler ${f.constructor.name}, handleLLMStart: ${h}`),f.raiseError)throw h}},f.awaitHandlers)})),new En(d,this.handlers,this.inheritableHandlers,this.tags,this.inheritableTags,this.metadata,this.inheritableMetadata,this._parentRunId)}))}async handleChatModelStart(e,r,n=void 0,i=void 0,a=void 0,s=void 0,o=void 0,c=void 0){return Promise.all(r.map(async(u,l)=>{let d=l===0&&n?n:se();return await Promise.all(this.handlers.map(f=>{if(!f.ignoreLLM)return Me(f)&&f._createRunForChatModelStart(e,[u],d,this._parentRunId,a,this.tags,this.metadata,c),k(async()=>{try{if(f.handleChatModelStart)await f.handleChatModelStart?.(e,[u],d,this._parentRunId,a,this.tags,this.metadata,c);else if(f.handleLLMStart){let h=ki(u);await f.handleLLMStart?.(e,[h],d,this._parentRunId,a,this.tags,this.metadata,c)}}catch(h){if((f.raiseError?console.error:console.warn)(`Error in handler ${f.constructor.name}, handleLLMStart: ${h}`),f.raiseError)throw h}},f.awaitHandlers)})),new En(d,this.handlers,this.inheritableHandlers,this.tags,this.inheritableTags,this.metadata,this.inheritableMetadata,this._parentRunId)}))}async handleChainStart(e,r,n=se(),i=void 0,a=void 0,s=void 0,o=void 0,c=void 0,u=void 0){return await Promise.all(this.handlers.map(l=>{if(!l.ignoreChain)return Me(l)&&l._createRunForChainStart(e,r,n,this._parentRunId,this.tags,this.metadata,i,o,u),k(async()=>{try{await l.handleChainStart?.(e,r,n,this._parentRunId,this.tags,this.metadata,i,o,u)}catch(d){if((l.raiseError?console.error:console.warn)(`Error in handler ${l.constructor.name}, handleChainStart: ${d}`),l.raiseError)throw d}},l.awaitHandlers)})),new Ys(n,this.handlers,this.inheritableHandlers,this.tags,this.inheritableTags,this.metadata,this.inheritableMetadata,this._parentRunId)}async handleToolStart(e,r,n=se(),i=void 0,a=void 0,s=void 0,o=void 0,c=void 0){return await Promise.all(this.handlers.map(u=>{if(!u.ignoreAgent)return Me(u)&&u._createRunForToolStart(e,r,n,this._parentRunId,this.tags,this.metadata,o),k(async()=>{try{await u.handleToolStart?.(e,r,n,this._parentRunId,this.tags,this.metadata,o,c)}catch(l){if((u.raiseError?console.error:console.warn)(`Error in handler ${u.constructor.name}, handleToolStart: ${l}`),u.raiseError)throw l}},u.awaitHandlers)})),new Zs(n,this.handlers,this.inheritableHandlers,this.tags,this.inheritableTags,this.metadata,this.inheritableMetadata,this._parentRunId)}async handleRetrieverStart(e,r,n=se(),i=void 0,a=void 0,s=void 0,o=void 0){return await Promise.all(this.handlers.map(c=>{if(!c.ignoreRetriever)return Me(c)&&c._createRunForRetrieverStart(e,r,n,this._parentRunId,this.tags,this.metadata,o),k(async()=>{try{await c.handleRetrieverStart?.(e,r,n,this._parentRunId,this.tags,this.metadata,o)}catch(u){if((c.raiseError?console.error:console.warn)(`Error in handler ${c.constructor.name}, handleRetrieverStart: ${u}`),c.raiseError)throw u}},c.awaitHandlers)})),new Qs(n,this.handlers,this.inheritableHandlers,this.tags,this.inheritableTags,this.metadata,this.inheritableMetadata,this._parentRunId)}async handleCustomEvent(e,r,n,i,a){await Promise.all(this.handlers.map(s=>k(async()=>{if(!s.ignoreCustomEvent)try{await s.handleCustomEvent?.(e,r,n,this.tags,this.metadata)}catch(o){if((s.raiseError?console.error:console.warn)(`Error in handler ${s.constructor.name}, handleCustomEvent: ${o}`),s.raiseError)throw o}},s.awaitHandlers)))}addHandler(e,r=!0){this.handlers.push(e),r&&this.inheritableHandlers.push(e)}removeHandler(e){this.handlers=this.handlers.filter(r=>r!==e),this.inheritableHandlers=this.inheritableHandlers.filter(r=>r!==e)}setHandlers(e,r=!0){this.handlers=[],this.inheritableHandlers=[];for(let n of e)this.addHandler(n,r)}addTags(e,r=!0){this.removeTags(e),this.tags.push(...e),r&&this.inheritableTags.push(...e)}removeTags(e){this.tags=this.tags.filter(r=>!e.includes(r)),this.inheritableTags=this.inheritableTags.filter(r=>!e.includes(r))}addMetadata(e,r=!0){this.metadata={...this.metadata,...e},r&&(this.inheritableMetadata={...this.inheritableMetadata,...e})}removeMetadata(e){for(let r of Object.keys(e))delete this.metadata[r],delete this.inheritableMetadata[r]}copy(e=[],r=!0){let n=new rt(this._parentRunId);for(let i of this.handlers){let a=this.inheritableHandlers.includes(i);n.addHandler(i,a)}for(let i of this.tags){let a=this.inheritableTags.includes(i);n.addTags([i],a)}for(let i of Object.keys(this.metadata)){let a=Object.keys(this.inheritableMetadata).includes(i);n.addMetadata({[i]:this.metadata[i]},a)}for(let i of e)n.handlers.filter(a=>a.name==="console_callback_handler").some(a=>a.name===i.name)||n.addHandler(i,r);return n}static fromHandlers(e){class r extends Ae{name=se();constructor(){super(),Object.assign(this,e)}}let n=new this;return n.addHandler(new r),n}static configure(e,r,n,i,a,s,o){return this._configureSync(e,r,n,i,a,s,o)}static _configureSync(e,r,n,i,a,s,o){let c;(e||r)&&(Array.isArray(e)||!e?(c=new rt,c.setHandlers(e?.map(Ve)??[],!0)):c=e,c=c.copy(Array.isArray(r)?r.map(Ve):r?.handlers,!1));let u=ie("LANGCHAIN_VERBOSE")==="true"||o?.verbose,l=Ee.getTraceableRunTree(),d=l?.tracingEnabled??Js();if(l?.tracingEnabled===!1&&c){let y=c.handlers.filter(v=>v.name==="langchain_tracer");for(let v of y)c.removeHandler(v)}let f=d||(ie("LANGCHAIN_TRACING")??!1);if(u||f){if(c||(c=new rt),u&&!c.handlers.some(y=>y.name===Jt.prototype.name)){let y=new Jt;c.addHandler(y,!0)}if(f&&!c.handlers.some(y=>y.name==="langchain_tracer")&&d){let y=new Ee;c.addHandler(y,!0)}d&&l&&c._parentRunId===void 0&&(c._parentRunId=l.id,c.handlers.find(y=>y.name==="langchain_tracer")?.updateFromRunTree(l))}for(let{contextVar:y,inheritable:v=!0,handlerClass:E,envVar:x}of Ws()){let S=x&&ie(x)==="true"&&E,T,C=y!==void 0?wn(y):void 0;C&&pr(C)?T=C:S&&(T=new E({})),T!==void 0&&(c||(c=new rt),c.handlers.some($=>$.name===T.name)||c.addHandler(T,v))}(n||i)&&c&&(c.addTags(n??[]),c.addTags(i??[],!1)),(a||s)&&c&&(c.addMetadata(a??{}),c.addMetadata(s??{},!1));let h=o?.tracerInheritableMetadata,m=o?.tracerInheritableTags;if(c&&(h||m)){let y=new Map,v=E=>{if(!(E instanceof Ee))return E;let x=y.get(E);if(x!==void 0)return x;let S=E.copyWithTracingConfig({metadata:h,tags:m});return y.set(E,S),S};c.handlers=c.handlers.map(v),c.inheritableHandlers=c.inheritableHandlers.map(v)}if(c){let y=mu(c.handlers,c.inheritableHandlers);c.handlers=y.handlers,c.inheritableHandlers=y.inheritableHandlers}return c}};function Ve(t){return"name"in t?t:Ae.fromMethods(t)}var vn=class{getStore(){}run(t,e){return e()}enterWith(t){}},gu=new vn,eo=Symbol.for("lc:child_config"),yu=class{getInstance(){return Se()??gu}getRunnableConfig(){return this.getInstance().getStore()?.extra?.[eo]}runWithConfig(t,e,r){let n=fe._configureSync(t?.callbacks,void 0,t?.tags,void 0,t?.metadata),i=this.getInstance(),a=i.getStore(),s=n?.getParentRunId(),o=n?.handlers?.find(u=>u?.name==="langchain_tracer"),c;return o&&s?c=o.getRunTreeWithTracingConfig(s):r||(c=new ae({name:"<runnable_lambda>",tracingEnabled:!1})),c&&(c.extra={...c.extra,[eo]:t}),a!==void 0&&a[ve]!==void 0&&(c===void 0&&(c={}),c[ve]=a[ve]),i.run(c,e)}initializeGlobalInstance(t){Se()===void 0&&qs(t)}},Qt=new yu;var Yg=P({AsyncLocalStorageProviderSingleton:()=>Qt,MockAsyncLocalStorage:()=>vn,_CONTEXT_VARIABLES_KEY:()=>ve});var wu=new Set(["api_key"]),bu=new Set(["string","number","boolean"]);function Eu(t){let e=t.configurable??{},r=t.metadata??{},n={};for(let[i,a]of Object.entries(e))!i.startsWith("__")&&!Object.prototype.hasOwnProperty.call(r,i)&&!wu.has(i)&&bu.has(typeof a)&&(n[i]=a);return Object.keys(n).length>0?n:void 0}async function ny(t){return fe._configureSync(t?.callbacks,void 0,t?.tags,void 0,t?.metadata,void 0,{tracerInheritableMetadata:t?Eu(t):void 0})}function iy(...t){let e={};for(let r of t.filter(n=>!!n))for(let n of Object.keys(r))if(n==="metadata")e[n]={...e[n],...r[n]};else if(n==="tags"){let i=e[n]??[];e[n]=[...new Set(i.concat(r[n]??[]))]}else if(n==="configurable")e[n]={...e[n],...r[n]};else if(n==="timeout")e.timeout===void 0?e.timeout=r.timeout:r.timeout!==void 0&&(e.timeout=Math.min(e.timeout,r.timeout));else if(n==="signal")e.signal===void 0?e.signal=r.signal:r.signal!==void 0&&("any"in AbortSignal?e.signal=AbortSignal.any([e.signal,r.signal]):e.signal=r.signal);else if(n==="callbacks"){let i=e.callbacks,a=r.callbacks;if(Array.isArray(a))if(!i)e.callbacks=a;else if(Array.isArray(i))e.callbacks=i.concat(a);else{let s=i.copy();for(let o of a)s.addHandler(Ve(o),!0);e.callbacks=s}else if(a)if(!i)e.callbacks=a;else if(Array.isArray(i)){let s=a.copy();for(let o of i)s.addHandler(Ve(o),!0);e.callbacks=s}else e.callbacks=new fe(a._parentRunId,{handlers:i.handlers.concat(a.handlers),inheritableHandlers:i.inheritableHandlers.concat(a.inheritableHandlers),tags:Array.from(new Set(i.tags.concat(a.tags))),inheritableTags:Array.from(new Set(i.inheritableTags.concat(a.inheritableTags))),metadata:{...i.metadata,...a.metadata}})}else{let i=n;e[i]=r[i]??e[i]}return e}function vu(t){let e=Qt.getRunnableConfig(),r={tags:[],metadata:{},recursionLimit:25,runId:void 0};if(e){let{runId:n,runName:i,...a}=e;r=Object.entries(a).reduce((s,[o,c])=>(c!==void 0&&(s[o]=c),s),r)}if(t&&(r=Object.entries(t).reduce((n,[i,a])=>(a!==void 0&&(n[i]=a),n),r)),r?.configurable&&typeof r.configurable.model=="string"&&r.metadata?.model===void 0&&(r.metadata||(r.metadata={}),r.metadata.model=r.configurable.model),r.timeout!==void 0){if(r.timeout<=0)throw new Error("Timeout must be a positive number");let n=r.timeout,i=AbortSignal.timeout(n);r.metadata||(r.metadata={}),r.metadata.timeoutMs===void 0&&(r.metadata.timeoutMs=n),r.signal!==void 0?"any"in AbortSignal&&(r.signal=AbortSignal.any([r.signal,i])):r.signal=i,delete r.timeout}return r}function ay(t={},{callbacks:e,maxConcurrency:r,recursionLimit:n,runName:i,configurable:a,runId:s}={}){let o=vu(t);return e!==void 0&&(delete o.runName,o.callbacks=e),n!==void 0&&(o.recursionLimit=n),r!==void 0&&(o.maxConcurrency=r),i!==void 0&&(o.runName=i),a!==void 0&&(o.configurable={...o.configurable,...a}),s!==void 0&&delete o.runId,o}function sy(t){if(t)return{configurable:t.configurable,recursionLimit:t.recursionLimit,callbacks:t.callbacks,tags:t.tags,metadata:t.metadata,maxConcurrency:t.maxConcurrency,timeout:t.timeout,signal:t.signal,store:t.store}}export{P as a,Jh as b,ic as c,ac as d,sc as e,se as f,oc as g,xu as h,In as i,lo as j,Cn as k,Ru as l,at as m,ke as n,Qh as o,ra as p,ie as q,qd as r,ir as s,ar as t,$o as u,Uo as v,jo as w,pe as x,Nn as y,Pn as z,Nu as A,kn as B,Pu as C,ku as D,Yt as E,Lu as F,zn as G,W as H,Xn as I,q as J,td as K,So as L,L as M,Le as N,Qn as O,ee as P,Zn as Q,ei as R,rd as S,od as T,Io as U,ct as V,Co as W,tr as X,Oo as Y,Ro as Z,Ti as _,Xd as $,Qd as aa,ef as ba,or as ca,wi as da,lt as ea,$e as fa,Xf as ga,Qf as ha,Pi as ia,cr as ja,Ii as ka,nf as la,af as ma,Ci as na,Oi as oa,lf as pa,uf as qa,dt as ra,Ri as sa,mf as ta,_f as ua,Mi as va,ht as wa,Ni as xa,xf as ya,Tf as za,Df as Aa,Bf as Ba,ki as Ca,Vo as Da,Hf as Ea,Ff as Fa,Gf as Ga,Li as Ha,np as Ia,uc as Ja,dc as Ka,Ae as La,Qr as Ma,ye as Na,U_ as Oa,tt as Pa,F_ as Qa,X_ as Ra,cg as Sa,_g as Ta,Lg as Ua,_u as Va,fe as Wa,Ve as Xa,Qt as Ya,Yg as Za,ny as _a,iy as $a,vu as ab,ay as bb,sy as cb};