langgraph-ui-components 0.0.10 → 0.0.11-testing

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 (393) hide show
  1. package/dist/index.es.js +3 -2
  2. package/dist/index.es10.js +25 -6
  3. package/dist/index.es10.js.map +1 -1
  4. package/dist/index.es100.js +131 -64
  5. package/dist/index.es100.js.map +1 -1
  6. package/dist/index.es101.js +65 -32
  7. package/dist/index.es101.js.map +1 -1
  8. package/dist/index.es102.js +34 -34
  9. package/dist/index.es102.js.map +1 -1
  10. package/dist/index.es103.js +35 -164
  11. package/dist/index.es103.js.map +1 -1
  12. package/dist/index.es104.js +156 -193
  13. package/dist/index.es104.js.map +1 -1
  14. package/dist/index.es105.js +202 -13
  15. package/dist/index.es105.js.map +1 -1
  16. package/dist/index.es106.js +13 -29
  17. package/dist/index.es106.js.map +1 -1
  18. package/dist/index.es107.js +25 -29
  19. package/dist/index.es107.js.map +1 -1
  20. package/dist/index.es108.js +24 -3147
  21. package/dist/index.es108.js.map +1 -1
  22. package/dist/index.es109.js +3151 -31
  23. package/dist/index.es109.js.map +1 -1
  24. package/dist/index.es110.js +21 -5
  25. package/dist/index.es110.js.map +1 -1
  26. package/dist/index.es111.js +64 -69
  27. package/dist/index.es111.js.map +1 -1
  28. package/dist/index.es112.js +3 -37
  29. package/dist/index.es112.js.map +1 -1
  30. package/dist/index.es113.js +16 -5
  31. package/dist/index.es113.js.map +1 -1
  32. package/dist/index.es114.js +7 -2
  33. package/dist/index.es114.js.map +1 -1
  34. package/dist/index.es115.js +2 -13
  35. package/dist/index.es115.js.map +1 -1
  36. package/dist/index.es116.js +9 -499
  37. package/dist/index.es116.js.map +1 -1
  38. package/dist/index.es117.js +501 -5
  39. package/dist/index.es117.js.map +1 -1
  40. package/dist/index.es118.js +7 -2
  41. package/dist/index.es118.js.map +1 -1
  42. package/dist/index.es119.js +2 -148
  43. package/dist/index.es119.js.map +1 -1
  44. package/dist/index.es120.js +118 -878
  45. package/dist/index.es120.js.map +1 -1
  46. package/dist/index.es121.js +877 -251
  47. package/dist/index.es121.js.map +1 -1
  48. package/dist/index.es122.js +281 -3
  49. package/dist/index.es122.js.map +1 -1
  50. package/dist/index.es123.js +3 -445
  51. package/dist/index.es123.js.map +1 -1
  52. package/dist/index.es124.js +437 -39
  53. package/dist/index.es124.js.map +1 -1
  54. package/dist/index.es125.js +46 -22
  55. package/dist/index.es125.js.map +1 -1
  56. package/dist/index.es126.js +21 -78
  57. package/dist/index.es126.js.map +1 -1
  58. package/dist/index.es127.js +76 -126
  59. package/dist/index.es127.js.map +1 -1
  60. package/dist/index.es128.js +125 -45
  61. package/dist/index.es128.js.map +1 -1
  62. package/dist/index.es129.js +48 -9
  63. package/dist/index.es129.js.map +1 -1
  64. package/dist/index.es130.js +10 -45
  65. package/dist/index.es130.js.map +1 -1
  66. package/dist/index.es131.js +43 -97
  67. package/dist/index.es131.js.map +1 -1
  68. package/dist/index.es132.js +94 -48
  69. package/dist/index.es132.js.map +1 -1
  70. package/dist/index.es133.js +51 -14
  71. package/dist/index.es133.js.map +1 -1
  72. package/dist/index.es134.js +1 -1
  73. package/dist/index.es135.js +1 -1
  74. package/dist/index.es138.js +1 -1
  75. package/dist/index.es139.js +1 -1
  76. package/dist/index.es140.js +1 -1
  77. package/dist/index.es141.js +1 -1
  78. package/dist/index.es142.js +1 -1
  79. package/dist/index.es143.js +1 -1
  80. package/dist/index.es144.js +1 -1
  81. package/dist/index.es145.js +1 -1
  82. package/dist/index.es146.js +1 -1
  83. package/dist/index.es147.js +1 -1
  84. package/dist/index.es148.js +1 -1
  85. package/dist/index.es149.js +1 -1
  86. package/dist/index.es150.js +1 -1
  87. package/dist/index.es151.js +1 -1
  88. package/dist/index.es152.js +1 -1
  89. package/dist/index.es153.js +1 -1
  90. package/dist/index.es154.js +1 -1
  91. package/dist/index.es155.js +1 -1
  92. package/dist/index.es156.js +1 -1
  93. package/dist/index.es157.js +1 -1
  94. package/dist/index.es158.js +1 -1
  95. package/dist/index.es159.js +1 -1
  96. package/dist/index.es16.js +3 -3
  97. package/dist/index.es16.js.map +1 -1
  98. package/dist/index.es160.js +1 -1
  99. package/dist/index.es161.js +1 -1
  100. package/dist/index.es162.js +1 -1
  101. package/dist/index.es163.js +1 -1
  102. package/dist/index.es164.js +1 -1
  103. package/dist/index.es165.js +1 -1
  104. package/dist/index.es166.js +1 -1
  105. package/dist/index.es167.js +1 -1
  106. package/dist/index.es168.js +1 -1
  107. package/dist/index.es169.js +1 -1
  108. package/dist/index.es170.js +1 -1
  109. package/dist/index.es171.js +1 -1
  110. package/dist/index.es172.js +1 -1
  111. package/dist/index.es173.js +1 -1
  112. package/dist/index.es174.js +1 -1
  113. package/dist/index.es175.js +1 -1
  114. package/dist/index.es176.js +1 -1
  115. package/dist/index.es177.js +1 -1
  116. package/dist/index.es178.js +1 -1
  117. package/dist/index.es179.js +1 -1
  118. package/dist/index.es18.js +15 -15
  119. package/dist/index.es180.js +1 -1
  120. package/dist/index.es181.js +1 -1
  121. package/dist/index.es182.js +1 -1
  122. package/dist/index.es183.js +162 -13
  123. package/dist/index.es183.js.map +1 -1
  124. package/dist/index.es184.js +2 -89
  125. package/dist/index.es184.js.map +1 -1
  126. package/dist/index.es185.js +15 -2
  127. package/dist/index.es185.js.map +1 -1
  128. package/dist/index.es186.js +89 -2
  129. package/dist/index.es186.js.map +1 -1
  130. package/dist/index.es187.js +2 -2
  131. package/dist/index.es188.js +56 -2
  132. package/dist/index.es188.js.map +1 -1
  133. package/dist/index.es189.js +100 -2
  134. package/dist/index.es189.js.map +1 -1
  135. package/dist/index.es190.js +191 -2
  136. package/dist/index.es190.js.map +1 -1
  137. package/dist/index.es191.js +110 -2
  138. package/dist/index.es191.js.map +1 -1
  139. package/dist/index.es192.js +35 -2
  140. package/dist/index.es192.js.map +1 -1
  141. package/dist/index.es193.js +10 -2
  142. package/dist/index.es193.js.map +1 -1
  143. package/dist/index.es194.js +11 -2
  144. package/dist/index.es194.js.map +1 -1
  145. package/dist/index.es195.js +12 -2
  146. package/dist/index.es195.js.map +1 -1
  147. package/dist/index.es196.js +91 -2
  148. package/dist/index.es196.js.map +1 -1
  149. package/dist/index.es197.js +275 -2
  150. package/dist/index.es197.js.map +1 -1
  151. package/dist/index.es198.js +2 -2
  152. package/dist/index.es199.js +164 -2
  153. package/dist/index.es199.js.map +1 -1
  154. package/dist/index.es200.js +51 -2
  155. package/dist/index.es200.js.map +1 -1
  156. package/dist/index.es201.js +40 -2
  157. package/dist/index.es201.js.map +1 -1
  158. package/dist/index.es202.js +35 -2
  159. package/dist/index.es202.js.map +1 -1
  160. package/dist/index.es203.js +40 -2
  161. package/dist/index.es203.js.map +1 -1
  162. package/dist/index.es204.js +24 -2
  163. package/dist/index.es204.js.map +1 -1
  164. package/dist/index.es205.js +591 -2
  165. package/dist/index.es205.js.map +1 -1
  166. package/dist/index.es206.js +125 -2
  167. package/dist/index.es206.js.map +1 -1
  168. package/dist/index.es207.js +2 -2
  169. package/dist/index.es208.js +2 -2
  170. package/dist/index.es209.js +2 -2
  171. package/dist/index.es210.js +2 -2
  172. package/dist/index.es211.js +2 -2
  173. package/dist/index.es212.js +2 -2
  174. package/dist/index.es213.js +2 -2
  175. package/dist/index.es214.js +2 -2
  176. package/dist/index.es215.js +2 -2
  177. package/dist/index.es216.js +2 -2
  178. package/dist/index.es217.js +2 -2
  179. package/dist/index.es218.js +2 -2
  180. package/dist/index.es219.js +2 -2
  181. package/dist/index.es220.js +2 -2
  182. package/dist/index.es221.js +2 -2
  183. package/dist/index.es222.js +2 -2
  184. package/dist/index.es223.js +2 -2
  185. package/dist/index.es224.js +2 -2
  186. package/dist/index.es225.js +2 -2
  187. package/dist/index.es226.js +2 -2
  188. package/dist/index.es227.js +2 -2
  189. package/dist/index.es228.js +2 -2
  190. package/dist/index.es229.js +2 -2
  191. package/dist/index.es230.js +2 -2
  192. package/dist/index.es231.js +2 -56
  193. package/dist/index.es231.js.map +1 -1
  194. package/dist/index.es232.js +2 -100
  195. package/dist/index.es232.js.map +1 -1
  196. package/dist/index.es233.js +2 -191
  197. package/dist/index.es233.js.map +1 -1
  198. package/dist/index.es234.js +2 -110
  199. package/dist/index.es234.js.map +1 -1
  200. package/dist/index.es235.js +2 -35
  201. package/dist/index.es235.js.map +1 -1
  202. package/dist/index.es236.js +2 -10
  203. package/dist/index.es236.js.map +1 -1
  204. package/dist/index.es237.js +2 -11
  205. package/dist/index.es237.js.map +1 -1
  206. package/dist/index.es238.js +2 -12
  207. package/dist/index.es238.js.map +1 -1
  208. package/dist/index.es239.js +2 -91
  209. package/dist/index.es239.js.map +1 -1
  210. package/dist/index.es24.js +1 -1
  211. package/dist/index.es240.js +2 -275
  212. package/dist/index.es240.js.map +1 -1
  213. package/dist/index.es241.js +2 -2
  214. package/dist/index.es242.js +2 -164
  215. package/dist/index.es242.js.map +1 -1
  216. package/dist/index.es243.js +2 -51
  217. package/dist/index.es243.js.map +1 -1
  218. package/dist/index.es244.js +2 -40
  219. package/dist/index.es244.js.map +1 -1
  220. package/dist/index.es245.js +2 -35
  221. package/dist/index.es245.js.map +1 -1
  222. package/dist/index.es246.js +2 -40
  223. package/dist/index.es246.js.map +1 -1
  224. package/dist/index.es247.js +2 -24
  225. package/dist/index.es247.js.map +1 -1
  226. package/dist/index.es248.js +2 -591
  227. package/dist/index.es248.js.map +1 -1
  228. package/dist/index.es249.js +2 -125
  229. package/dist/index.es249.js.map +1 -1
  230. package/dist/index.es25.js +3 -1
  231. package/dist/index.es25.js.map +1 -1
  232. package/dist/index.es250.js +2 -164
  233. package/dist/index.es250.js.map +1 -1
  234. package/dist/index.es251.js +2 -2
  235. package/dist/index.es252.js +2 -2
  236. package/dist/index.es253.js +1 -1
  237. package/dist/index.es258.js +1 -1
  238. package/dist/index.es260.js +2 -2
  239. package/dist/index.es262.js +2 -2
  240. package/dist/index.es265.js +1 -1
  241. package/dist/index.es267.js +1 -1
  242. package/dist/index.es277.js +2 -147
  243. package/dist/index.es277.js.map +1 -1
  244. package/dist/index.es278.js +126 -167
  245. package/dist/index.es278.js.map +1 -1
  246. package/dist/index.es279.js +188 -2
  247. package/dist/index.es279.js.map +1 -1
  248. package/dist/index.es280.js +1 -1
  249. package/dist/index.es283.js +1 -1
  250. package/dist/index.es288.js +1 -1
  251. package/dist/index.es29.js +1 -1
  252. package/dist/index.es3.js +24 -9
  253. package/dist/index.es3.js.map +1 -1
  254. package/dist/index.es300.js +1 -1
  255. package/dist/index.es302.js +1 -1
  256. package/dist/index.es31.js +7 -7
  257. package/dist/index.es314.js +1 -1
  258. package/dist/index.es32.js +1 -1
  259. package/dist/index.es334.js +2 -2
  260. package/dist/index.es35.js +4 -4
  261. package/dist/index.es36.js +1185 -111
  262. package/dist/index.es36.js.map +1 -1
  263. package/dist/index.es37.js +7 -71
  264. package/dist/index.es37.js.map +1 -1
  265. package/dist/index.es38.js +9 -18
  266. package/dist/index.es38.js.map +1 -1
  267. package/dist/index.es39.js +136 -250
  268. package/dist/index.es39.js.map +1 -1
  269. package/dist/index.es4.js +2 -1
  270. package/dist/index.es4.js.map +1 -1
  271. package/dist/index.es40.js +116 -41
  272. package/dist/index.es40.js.map +1 -1
  273. package/dist/index.es41.js +64 -208
  274. package/dist/index.es41.js.map +1 -1
  275. package/dist/index.es42.js +17 -66
  276. package/dist/index.es42.js.map +1 -1
  277. package/dist/index.es43.js +236 -117
  278. package/dist/index.es43.js.map +1 -1
  279. package/dist/index.es44.js +38 -19
  280. package/dist/index.es44.js.map +1 -1
  281. package/dist/index.es45.js +202 -217
  282. package/dist/index.es45.js.map +1 -1
  283. package/dist/index.es46.js +65 -7
  284. package/dist/index.es46.js.map +1 -1
  285. package/dist/index.es47.js +131 -1181
  286. package/dist/index.es47.js.map +1 -1
  287. package/dist/index.es48.js +25 -8
  288. package/dist/index.es48.js.map +1 -1
  289. package/dist/index.es49.js +218 -135
  290. package/dist/index.es49.js.map +1 -1
  291. package/dist/index.es5.js.map +1 -1
  292. package/dist/index.es50.js +5 -208
  293. package/dist/index.es50.js.map +1 -1
  294. package/dist/index.es51.js +208 -5
  295. package/dist/index.es51.js.map +1 -1
  296. package/dist/index.es52.js +90 -7
  297. package/dist/index.es52.js.map +1 -1
  298. package/dist/index.es53.js +6 -92
  299. package/dist/index.es53.js.map +1 -1
  300. package/dist/index.es54.js +14 -3
  301. package/dist/index.es54.js.map +1 -1
  302. package/dist/index.es55.js +8 -36
  303. package/dist/index.es55.js.map +1 -1
  304. package/dist/index.es56.js +83 -61
  305. package/dist/index.es56.js.map +1 -1
  306. package/dist/index.es57.js +3 -37
  307. package/dist/index.es57.js.map +1 -1
  308. package/dist/index.es58.js +34 -304
  309. package/dist/index.es58.js.map +1 -1
  310. package/dist/index.es59.js +72 -9
  311. package/dist/index.es59.js.map +1 -1
  312. package/dist/index.es60.js +32 -85
  313. package/dist/index.es60.js.map +1 -1
  314. package/dist/index.es61.js +304 -6
  315. package/dist/index.es61.js.map +1 -1
  316. package/dist/index.es62.js +9 -15
  317. package/dist/index.es62.js.map +1 -1
  318. package/dist/index.es63.js +3 -3
  319. package/dist/index.es64.js +5 -142
  320. package/dist/index.es64.js.map +1 -1
  321. package/dist/index.es65.js +148 -285
  322. package/dist/index.es65.js.map +1 -1
  323. package/dist/index.es66.js +668 -62
  324. package/dist/index.es66.js.map +1 -1
  325. package/dist/index.es67.js +131 -201
  326. package/dist/index.es67.js.map +1 -1
  327. package/dist/index.es68.js +295 -29
  328. package/dist/index.es68.js.map +1 -1
  329. package/dist/index.es69.js +65 -8
  330. package/dist/index.es69.js.map +1 -1
  331. package/dist/index.es7.js +2 -1
  332. package/dist/index.es7.js.map +1 -1
  333. package/dist/index.es70.js +210 -9
  334. package/dist/index.es70.js.map +1 -1
  335. package/dist/index.es71.js +28 -181
  336. package/dist/index.es71.js.map +1 -1
  337. package/dist/index.es72.js +8 -23
  338. package/dist/index.es72.js.map +1 -1
  339. package/dist/index.es73.js +9 -1397
  340. package/dist/index.es73.js.map +1 -1
  341. package/dist/index.es74.js +187 -9
  342. package/dist/index.es74.js.map +1 -1
  343. package/dist/index.es75.js +24 -8
  344. package/dist/index.es75.js.map +1 -1
  345. package/dist/index.es76.js +1399 -5
  346. package/dist/index.es76.js.map +1 -1
  347. package/dist/index.es77.js +9 -163
  348. package/dist/index.es77.js.map +1 -1
  349. package/dist/index.es78.js +8 -672
  350. package/dist/index.es78.js.map +1 -1
  351. package/dist/index.es79.js +36 -20
  352. package/dist/index.es79.js.map +1 -1
  353. package/dist/index.es80.js +5 -68
  354. package/dist/index.es80.js.map +1 -1
  355. package/dist/index.es81.js +73 -3
  356. package/dist/index.es81.js.map +1 -1
  357. package/dist/index.es82.js +36 -11
  358. package/dist/index.es82.js.map +1 -1
  359. package/dist/index.es83.js +10 -38
  360. package/dist/index.es83.js.map +1 -1
  361. package/dist/index.es84.js +34 -28
  362. package/dist/index.es84.js.map +1 -1
  363. package/dist/index.es85.js +28 -226
  364. package/dist/index.es85.js.map +1 -1
  365. package/dist/index.es86.js +228 -26
  366. package/dist/index.es86.js.map +1 -1
  367. package/dist/index.es87.js +26 -71
  368. package/dist/index.es87.js.map +1 -1
  369. package/dist/index.es88.js +41 -42
  370. package/dist/index.es88.js.map +1 -1
  371. package/dist/index.es89.js +71 -47
  372. package/dist/index.es89.js.map +1 -1
  373. package/dist/index.es90.js +37 -15
  374. package/dist/index.es90.js.map +1 -1
  375. package/dist/index.es91.js +6 -19
  376. package/dist/index.es91.js.map +1 -1
  377. package/dist/index.es92.js +40 -54
  378. package/dist/index.es92.js.map +1 -1
  379. package/dist/index.es93.js +56 -12
  380. package/dist/index.es93.js.map +1 -1
  381. package/dist/index.es94.js +13 -137
  382. package/dist/index.es94.js.map +1 -1
  383. package/dist/index.es95.js +135 -19
  384. package/dist/index.es95.js.map +1 -1
  385. package/dist/index.es96.js +18 -179
  386. package/dist/index.es96.js.map +1 -1
  387. package/dist/index.es97.js +163 -222
  388. package/dist/index.es97.js.map +1 -1
  389. package/dist/index.es98.js +187 -301
  390. package/dist/index.es98.js.map +1 -1
  391. package/dist/index.es99.js +348 -130
  392. package/dist/index.es99.js.map +1 -1
  393. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.es98.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/tracers/event_stream.js"],"sourcesContent":["import { AIMessageChunk } from \"../messages/ai.js\";\nimport { BaseTracer } from \"./base.js\";\nimport { IterableReadableStream } from \"../utils/stream.js\";\nimport { GenerationChunk } from \"../outputs.js\";\n\n//#region src/tracers/event_stream.ts\nfunction assignName({ name, serialized }) {\n\tif (name !== void 0) return name;\n\tif (serialized?.name !== void 0) return serialized.name;\n\telse if (serialized?.id !== void 0 && Array.isArray(serialized?.id)) return serialized.id[serialized.id.length - 1];\n\treturn \"Unnamed\";\n}\nconst isStreamEventsHandler = (handler) => handler.name === \"event_stream_tracer\";\n/**\n* Class that extends the `BaseTracer` class from the\n* `langchain.callbacks.tracers.base` module. It represents a callback\n* handler that logs the execution of runs and emits `RunLog` instances to a\n* `RunLogStream`.\n*/\nvar EventStreamCallbackHandler = class extends BaseTracer {\n\tautoClose = true;\n\tincludeNames;\n\tincludeTypes;\n\tincludeTags;\n\texcludeNames;\n\texcludeTypes;\n\texcludeTags;\n\trunInfoMap = /* @__PURE__ */ new Map();\n\ttappedPromises = /* @__PURE__ */ new Map();\n\ttransformStream;\n\twriter;\n\treceiveStream;\n\treadableStreamClosed = false;\n\tname = \"event_stream_tracer\";\n\tlc_prefer_streaming = true;\n\tconstructor(fields) {\n\t\tsuper({\n\t\t\t_awaitHandler: true,\n\t\t\t...fields\n\t\t});\n\t\tthis.autoClose = fields?.autoClose ?? true;\n\t\tthis.includeNames = fields?.includeNames;\n\t\tthis.includeTypes = fields?.includeTypes;\n\t\tthis.includeTags = fields?.includeTags;\n\t\tthis.excludeNames = fields?.excludeNames;\n\t\tthis.excludeTypes = fields?.excludeTypes;\n\t\tthis.excludeTags = fields?.excludeTags;\n\t\tthis.transformStream = new TransformStream({ flush: () => {\n\t\t\tthis.readableStreamClosed = true;\n\t\t} });\n\t\tthis.writer = this.transformStream.writable.getWriter();\n\t\tthis.receiveStream = IterableReadableStream.fromReadableStream(this.transformStream.readable);\n\t}\n\t[Symbol.asyncIterator]() {\n\t\treturn this.receiveStream;\n\t}\n\tasync persistRun(_run) {}\n\t_includeRun(run) {\n\t\tconst runTags = run.tags ?? [];\n\t\tlet include = this.includeNames === void 0 && this.includeTags === void 0 && this.includeTypes === void 0;\n\t\tif (this.includeNames !== void 0) include = include || this.includeNames.includes(run.name);\n\t\tif (this.includeTypes !== void 0) include = include || this.includeTypes.includes(run.runType);\n\t\tif (this.includeTags !== void 0) include = include || runTags.find((tag) => this.includeTags?.includes(tag)) !== void 0;\n\t\tif (this.excludeNames !== void 0) include = include && !this.excludeNames.includes(run.name);\n\t\tif (this.excludeTypes !== void 0) include = include && !this.excludeTypes.includes(run.runType);\n\t\tif (this.excludeTags !== void 0) include = include && runTags.every((tag) => !this.excludeTags?.includes(tag));\n\t\treturn include;\n\t}\n\tasync *tapOutputIterable(runId, outputStream) {\n\t\tconst firstChunk = await outputStream.next();\n\t\tif (firstChunk.done) return;\n\t\tconst runInfo = this.runInfoMap.get(runId);\n\t\tif (runInfo === void 0) {\n\t\t\tyield firstChunk.value;\n\t\t\treturn;\n\t\t}\n\t\tfunction _formatOutputChunk(eventType, data) {\n\t\t\tif (eventType === \"llm\" && typeof data === \"string\") return new GenerationChunk({ text: data });\n\t\t\treturn data;\n\t\t}\n\t\tlet tappedPromise = this.tappedPromises.get(runId);\n\t\tif (tappedPromise === void 0) {\n\t\t\tlet tappedPromiseResolver;\n\t\t\ttappedPromise = new Promise((resolve) => {\n\t\t\t\ttappedPromiseResolver = resolve;\n\t\t\t});\n\t\t\tthis.tappedPromises.set(runId, tappedPromise);\n\t\t\ttry {\n\t\t\t\tconst event = {\n\t\t\t\t\tevent: `on_${runInfo.runType}_stream`,\n\t\t\t\t\trun_id: runId,\n\t\t\t\t\tname: runInfo.name,\n\t\t\t\t\ttags: runInfo.tags,\n\t\t\t\t\tmetadata: runInfo.metadata,\n\t\t\t\t\tdata: {}\n\t\t\t\t};\n\t\t\t\tawait this.send({\n\t\t\t\t\t...event,\n\t\t\t\t\tdata: { chunk: _formatOutputChunk(runInfo.runType, firstChunk.value) }\n\t\t\t\t}, runInfo);\n\t\t\t\tyield firstChunk.value;\n\t\t\t\tfor await (const chunk of outputStream) {\n\t\t\t\t\tif (runInfo.runType !== \"tool\" && runInfo.runType !== \"retriever\") await this.send({\n\t\t\t\t\t\t...event,\n\t\t\t\t\t\tdata: { chunk: _formatOutputChunk(runInfo.runType, chunk) }\n\t\t\t\t\t}, runInfo);\n\t\t\t\t\tyield chunk;\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\ttappedPromiseResolver?.();\n\t\t\t}\n\t\t} else {\n\t\t\tyield firstChunk.value;\n\t\t\tfor await (const chunk of outputStream) yield chunk;\n\t\t}\n\t}\n\tasync send(payload, run) {\n\t\tif (this.readableStreamClosed) return;\n\t\tif (this._includeRun(run)) await this.writer.write(payload);\n\t}\n\tasync sendEndEvent(payload, run) {\n\t\tconst tappedPromise = this.tappedPromises.get(payload.run_id);\n\t\tif (tappedPromise !== void 0) tappedPromise.then(() => {\n\t\t\tthis.send(payload, run);\n\t\t});\n\t\telse await this.send(payload, run);\n\t}\n\tasync onLLMStart(run) {\n\t\tconst runName = assignName(run);\n\t\tconst runType = run.inputs.messages !== void 0 ? \"chat_model\" : \"llm\";\n\t\tconst runInfo = {\n\t\t\ttags: run.tags ?? [],\n\t\t\tmetadata: run.extra?.metadata ?? {},\n\t\t\tname: runName,\n\t\t\trunType,\n\t\t\tinputs: run.inputs\n\t\t};\n\t\tthis.runInfoMap.set(run.id, runInfo);\n\t\tconst eventName = `on_${runType}_start`;\n\t\tawait this.send({\n\t\t\tevent: eventName,\n\t\t\tdata: { input: run.inputs },\n\t\t\tname: runName,\n\t\t\ttags: run.tags ?? [],\n\t\t\trun_id: run.id,\n\t\t\tmetadata: run.extra?.metadata ?? {}\n\t\t}, runInfo);\n\t}\n\tasync onLLMNewToken(run, token, kwargs) {\n\t\tconst runInfo = this.runInfoMap.get(run.id);\n\t\tlet chunk;\n\t\tlet eventName;\n\t\tif (runInfo === void 0) throw new Error(`onLLMNewToken: Run ID ${run.id} not found in run map.`);\n\t\tif (this.runInfoMap.size === 1) return;\n\t\tif (runInfo.runType === \"chat_model\") {\n\t\t\teventName = \"on_chat_model_stream\";\n\t\t\tif (kwargs?.chunk === void 0) chunk = new AIMessageChunk({\n\t\t\t\tcontent: token,\n\t\t\t\tid: `run-${run.id}`\n\t\t\t});\n\t\t\telse chunk = kwargs.chunk.message;\n\t\t} else if (runInfo.runType === \"llm\") {\n\t\t\teventName = \"on_llm_stream\";\n\t\t\tif (kwargs?.chunk === void 0) chunk = new GenerationChunk({ text: token });\n\t\t\telse chunk = kwargs.chunk;\n\t\t} else throw new Error(`Unexpected run type ${runInfo.runType}`);\n\t\tawait this.send({\n\t\t\tevent: eventName,\n\t\t\tdata: { chunk },\n\t\t\trun_id: run.id,\n\t\t\tname: runInfo.name,\n\t\t\ttags: runInfo.tags,\n\t\t\tmetadata: runInfo.metadata\n\t\t}, runInfo);\n\t}\n\tasync onLLMEnd(run) {\n\t\tconst runInfo = this.runInfoMap.get(run.id);\n\t\tthis.runInfoMap.delete(run.id);\n\t\tlet eventName;\n\t\tif (runInfo === void 0) throw new Error(`onLLMEnd: Run ID ${run.id} not found in run map.`);\n\t\tconst generations = run.outputs?.generations;\n\t\tlet output;\n\t\tif (runInfo.runType === \"chat_model\") {\n\t\t\tfor (const generation of generations ?? []) {\n\t\t\t\tif (output !== void 0) break;\n\t\t\t\toutput = generation[0]?.message;\n\t\t\t}\n\t\t\teventName = \"on_chat_model_end\";\n\t\t} else if (runInfo.runType === \"llm\") {\n\t\t\toutput = {\n\t\t\t\tgenerations: generations?.map((generation) => {\n\t\t\t\t\treturn generation.map((chunk) => {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttext: chunk.text,\n\t\t\t\t\t\t\tgenerationInfo: chunk.generationInfo\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t}),\n\t\t\t\tllmOutput: run.outputs?.llmOutput ?? {}\n\t\t\t};\n\t\t\teventName = \"on_llm_end\";\n\t\t} else throw new Error(`onLLMEnd: Unexpected run type: ${runInfo.runType}`);\n\t\tawait this.sendEndEvent({\n\t\t\tevent: eventName,\n\t\t\tdata: {\n\t\t\t\toutput,\n\t\t\t\tinput: runInfo.inputs\n\t\t\t},\n\t\t\trun_id: run.id,\n\t\t\tname: runInfo.name,\n\t\t\ttags: runInfo.tags,\n\t\t\tmetadata: runInfo.metadata\n\t\t}, runInfo);\n\t}\n\tasync onChainStart(run) {\n\t\tconst runName = assignName(run);\n\t\tconst runType = run.run_type ?? \"chain\";\n\t\tconst runInfo = {\n\t\t\ttags: run.tags ?? [],\n\t\t\tmetadata: run.extra?.metadata ?? {},\n\t\t\tname: runName,\n\t\t\trunType: run.run_type\n\t\t};\n\t\tlet eventData = {};\n\t\tif (run.inputs.input === \"\" && Object.keys(run.inputs).length === 1) {\n\t\t\teventData = {};\n\t\t\trunInfo.inputs = {};\n\t\t} else if (run.inputs.input !== void 0) {\n\t\t\teventData.input = run.inputs.input;\n\t\t\trunInfo.inputs = run.inputs.input;\n\t\t} else {\n\t\t\teventData.input = run.inputs;\n\t\t\trunInfo.inputs = run.inputs;\n\t\t}\n\t\tthis.runInfoMap.set(run.id, runInfo);\n\t\tawait this.send({\n\t\t\tevent: `on_${runType}_start`,\n\t\t\tdata: eventData,\n\t\t\tname: runName,\n\t\t\ttags: run.tags ?? [],\n\t\t\trun_id: run.id,\n\t\t\tmetadata: run.extra?.metadata ?? {}\n\t\t}, runInfo);\n\t}\n\tasync onChainEnd(run) {\n\t\tconst runInfo = this.runInfoMap.get(run.id);\n\t\tthis.runInfoMap.delete(run.id);\n\t\tif (runInfo === void 0) throw new Error(`onChainEnd: Run ID ${run.id} not found in run map.`);\n\t\tconst eventName = `on_${run.run_type}_end`;\n\t\tconst inputs = run.inputs ?? runInfo.inputs ?? {};\n\t\tconst outputs = run.outputs?.output ?? run.outputs;\n\t\tconst data = {\n\t\t\toutput: outputs,\n\t\t\tinput: inputs\n\t\t};\n\t\tif (inputs.input && Object.keys(inputs).length === 1) {\n\t\t\tdata.input = inputs.input;\n\t\t\trunInfo.inputs = inputs.input;\n\t\t}\n\t\tawait this.sendEndEvent({\n\t\t\tevent: eventName,\n\t\t\tdata,\n\t\t\trun_id: run.id,\n\t\t\tname: runInfo.name,\n\t\t\ttags: runInfo.tags,\n\t\t\tmetadata: runInfo.metadata ?? {}\n\t\t}, runInfo);\n\t}\n\tasync onToolStart(run) {\n\t\tconst runName = assignName(run);\n\t\tconst runInfo = {\n\t\t\ttags: run.tags ?? [],\n\t\t\tmetadata: run.extra?.metadata ?? {},\n\t\t\tname: runName,\n\t\t\trunType: \"tool\",\n\t\t\tinputs: run.inputs ?? {}\n\t\t};\n\t\tthis.runInfoMap.set(run.id, runInfo);\n\t\tawait this.send({\n\t\t\tevent: \"on_tool_start\",\n\t\t\tdata: { input: run.inputs ?? {} },\n\t\t\tname: runName,\n\t\t\trun_id: run.id,\n\t\t\ttags: run.tags ?? [],\n\t\t\tmetadata: run.extra?.metadata ?? {}\n\t\t}, runInfo);\n\t}\n\tasync onToolEnd(run) {\n\t\tconst runInfo = this.runInfoMap.get(run.id);\n\t\tthis.runInfoMap.delete(run.id);\n\t\tif (runInfo === void 0) throw new Error(`onToolEnd: Run ID ${run.id} not found in run map.`);\n\t\tif (runInfo.inputs === void 0) throw new Error(`onToolEnd: Run ID ${run.id} is a tool call, and is expected to have traced inputs.`);\n\t\tconst output = run.outputs?.output === void 0 ? run.outputs : run.outputs.output;\n\t\tawait this.sendEndEvent({\n\t\t\tevent: \"on_tool_end\",\n\t\t\tdata: {\n\t\t\t\toutput,\n\t\t\t\tinput: runInfo.inputs\n\t\t\t},\n\t\t\trun_id: run.id,\n\t\t\tname: runInfo.name,\n\t\t\ttags: runInfo.tags,\n\t\t\tmetadata: runInfo.metadata\n\t\t}, runInfo);\n\t}\n\tasync onRetrieverStart(run) {\n\t\tconst runName = assignName(run);\n\t\tconst runType = \"retriever\";\n\t\tconst runInfo = {\n\t\t\ttags: run.tags ?? [],\n\t\t\tmetadata: run.extra?.metadata ?? {},\n\t\t\tname: runName,\n\t\t\trunType,\n\t\t\tinputs: { query: run.inputs.query }\n\t\t};\n\t\tthis.runInfoMap.set(run.id, runInfo);\n\t\tawait this.send({\n\t\t\tevent: \"on_retriever_start\",\n\t\t\tdata: { input: { query: run.inputs.query } },\n\t\t\tname: runName,\n\t\t\ttags: run.tags ?? [],\n\t\t\trun_id: run.id,\n\t\t\tmetadata: run.extra?.metadata ?? {}\n\t\t}, runInfo);\n\t}\n\tasync onRetrieverEnd(run) {\n\t\tconst runInfo = this.runInfoMap.get(run.id);\n\t\tthis.runInfoMap.delete(run.id);\n\t\tif (runInfo === void 0) throw new Error(`onRetrieverEnd: Run ID ${run.id} not found in run map.`);\n\t\tawait this.sendEndEvent({\n\t\t\tevent: \"on_retriever_end\",\n\t\t\tdata: {\n\t\t\t\toutput: run.outputs?.documents ?? run.outputs,\n\t\t\t\tinput: runInfo.inputs\n\t\t\t},\n\t\t\trun_id: run.id,\n\t\t\tname: runInfo.name,\n\t\t\ttags: runInfo.tags,\n\t\t\tmetadata: runInfo.metadata\n\t\t}, runInfo);\n\t}\n\tasync handleCustomEvent(eventName, data, runId) {\n\t\tconst runInfo = this.runInfoMap.get(runId);\n\t\tif (runInfo === void 0) throw new Error(`handleCustomEvent: Run ID ${runId} not found in run map.`);\n\t\tawait this.send({\n\t\t\tevent: \"on_custom_event\",\n\t\t\trun_id: runId,\n\t\t\tname: eventName,\n\t\t\ttags: runInfo.tags,\n\t\t\tmetadata: runInfo.metadata,\n\t\t\tdata\n\t\t}, runInfo);\n\t}\n\tasync finish() {\n\t\tconst pendingPromises = [...this.tappedPromises.values()];\n\t\tPromise.all(pendingPromises).finally(() => {\n\t\t\tthis.writer.close();\n\t\t});\n\t}\n};\n\n//#endregion\nexport { EventStreamCallbackHandler, isStreamEventsHandler };\n//# sourceMappingURL=event_stream.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es98.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/tracers/log_stream.js"],"sourcesContent":["import { __export } from \"../_virtual/rolldown_runtime.js\";\nimport { AIMessageChunk } from \"../messages/ai.js\";\nimport { applyPatch } from \"../utils/fast-json-patch/src/core.js\";\nimport \"../utils/fast-json-patch/index.js\";\nimport { BaseTracer } from \"./base.js\";\nimport { IterableReadableStream } from \"../utils/stream.js\";\n\n//#region src/tracers/log_stream.ts\nvar log_stream_exports = {};\n__export(log_stream_exports, {\n\tLogStreamCallbackHandler: () => LogStreamCallbackHandler,\n\tRunLog: () => RunLog,\n\tRunLogPatch: () => RunLogPatch,\n\tisLogStreamHandler: () => isLogStreamHandler\n});\n/**\n* List of jsonpatch JSONPatchOperations, which describe how to create the run state\n* from an empty dict. This is the minimal representation of the log, designed to\n* be serialized as JSON and sent over the wire to reconstruct the log on the other\n* side. Reconstruction of the state can be done with any jsonpatch-compliant library,\n* see https://jsonpatch.com for more information.\n*/\nvar RunLogPatch = class {\n\tops;\n\tconstructor(fields) {\n\t\tthis.ops = fields.ops ?? [];\n\t}\n\tconcat(other) {\n\t\tconst ops = this.ops.concat(other.ops);\n\t\tconst states = applyPatch({}, ops);\n\t\treturn new RunLog({\n\t\t\tops,\n\t\t\tstate: states[states.length - 1].newDocument\n\t\t});\n\t}\n};\nvar RunLog = class RunLog extends RunLogPatch {\n\tstate;\n\tconstructor(fields) {\n\t\tsuper(fields);\n\t\tthis.state = fields.state;\n\t}\n\tconcat(other) {\n\t\tconst ops = this.ops.concat(other.ops);\n\t\tconst states = applyPatch(this.state, other.ops);\n\t\treturn new RunLog({\n\t\t\tops,\n\t\t\tstate: states[states.length - 1].newDocument\n\t\t});\n\t}\n\tstatic fromRunLogPatch(patch) {\n\t\tconst states = applyPatch({}, patch.ops);\n\t\treturn new RunLog({\n\t\t\tops: patch.ops,\n\t\t\tstate: states[states.length - 1].newDocument\n\t\t});\n\t}\n};\nconst isLogStreamHandler = (handler) => handler.name === \"log_stream_tracer\";\n/**\n* Extract standardized inputs from a run.\n*\n* Standardizes the inputs based on the type of the runnable used.\n*\n* @param run - Run object\n* @param schemaFormat - The schema format to use.\n*\n* @returns Valid inputs are only dict. By conventions, inputs always represented\n* invocation using named arguments.\n* A null means that the input is not yet known!\n*/\nasync function _getStandardizedInputs(run, schemaFormat) {\n\tif (schemaFormat === \"original\") throw new Error(\"Do not assign inputs with original schema drop the key for now. When inputs are added to streamLog they should be added with standardized schema for streaming events.\");\n\tconst { inputs } = run;\n\tif ([\n\t\t\"retriever\",\n\t\t\"llm\",\n\t\t\"prompt\"\n\t].includes(run.run_type)) return inputs;\n\tif (Object.keys(inputs).length === 1 && inputs?.input === \"\") return void 0;\n\treturn inputs.input;\n}\nasync function _getStandardizedOutputs(run, schemaFormat) {\n\tconst { outputs } = run;\n\tif (schemaFormat === \"original\") return outputs;\n\tif ([\n\t\t\"retriever\",\n\t\t\"llm\",\n\t\t\"prompt\"\n\t].includes(run.run_type)) return outputs;\n\tif (outputs !== void 0 && Object.keys(outputs).length === 1 && outputs?.output !== void 0) return outputs.output;\n\treturn outputs;\n}\nfunction isChatGenerationChunk(x) {\n\treturn x !== void 0 && x.message !== void 0;\n}\n/**\n* Class that extends the `BaseTracer` class from the\n* `langchain.callbacks.tracers.base` module. It represents a callback\n* handler that logs the execution of runs and emits `RunLog` instances to a\n* `RunLogStream`.\n*/\nvar LogStreamCallbackHandler = class extends BaseTracer {\n\tautoClose = true;\n\tincludeNames;\n\tincludeTypes;\n\tincludeTags;\n\texcludeNames;\n\texcludeTypes;\n\texcludeTags;\n\t_schemaFormat = \"original\";\n\trootId;\n\tkeyMapByRunId = {};\n\tcounterMapByRunName = {};\n\ttransformStream;\n\twriter;\n\treceiveStream;\n\tname = \"log_stream_tracer\";\n\tlc_prefer_streaming = true;\n\tconstructor(fields) {\n\t\tsuper({\n\t\t\t_awaitHandler: true,\n\t\t\t...fields\n\t\t});\n\t\tthis.autoClose = fields?.autoClose ?? true;\n\t\tthis.includeNames = fields?.includeNames;\n\t\tthis.includeTypes = fields?.includeTypes;\n\t\tthis.includeTags = fields?.includeTags;\n\t\tthis.excludeNames = fields?.excludeNames;\n\t\tthis.excludeTypes = fields?.excludeTypes;\n\t\tthis.excludeTags = fields?.excludeTags;\n\t\tthis._schemaFormat = fields?._schemaFormat ?? this._schemaFormat;\n\t\tthis.transformStream = new TransformStream();\n\t\tthis.writer = this.transformStream.writable.getWriter();\n\t\tthis.receiveStream = IterableReadableStream.fromReadableStream(this.transformStream.readable);\n\t}\n\t[Symbol.asyncIterator]() {\n\t\treturn this.receiveStream;\n\t}\n\tasync persistRun(_run) {}\n\t_includeRun(run) {\n\t\tif (run.id === this.rootId) return false;\n\t\tconst runTags = run.tags ?? [];\n\t\tlet include = this.includeNames === void 0 && this.includeTags === void 0 && this.includeTypes === void 0;\n\t\tif (this.includeNames !== void 0) include = include || this.includeNames.includes(run.name);\n\t\tif (this.includeTypes !== void 0) include = include || this.includeTypes.includes(run.run_type);\n\t\tif (this.includeTags !== void 0) include = include || runTags.find((tag) => this.includeTags?.includes(tag)) !== void 0;\n\t\tif (this.excludeNames !== void 0) include = include && !this.excludeNames.includes(run.name);\n\t\tif (this.excludeTypes !== void 0) include = include && !this.excludeTypes.includes(run.run_type);\n\t\tif (this.excludeTags !== void 0) include = include && runTags.every((tag) => !this.excludeTags?.includes(tag));\n\t\treturn include;\n\t}\n\tasync *tapOutputIterable(runId, output) {\n\t\tfor await (const chunk of output) {\n\t\t\tif (runId !== this.rootId) {\n\t\t\t\tconst key = this.keyMapByRunId[runId];\n\t\t\t\tif (key) await this.writer.write(new RunLogPatch({ ops: [{\n\t\t\t\t\top: \"add\",\n\t\t\t\t\tpath: `/logs/${key}/streamed_output/-`,\n\t\t\t\t\tvalue: chunk\n\t\t\t\t}] }));\n\t\t\t}\n\t\t\tyield chunk;\n\t\t}\n\t}\n\tasync onRunCreate(run) {\n\t\tif (this.rootId === void 0) {\n\t\t\tthis.rootId = run.id;\n\t\t\tawait this.writer.write(new RunLogPatch({ ops: [{\n\t\t\t\top: \"replace\",\n\t\t\t\tpath: \"\",\n\t\t\t\tvalue: {\n\t\t\t\t\tid: run.id,\n\t\t\t\t\tname: run.name,\n\t\t\t\t\ttype: run.run_type,\n\t\t\t\t\tstreamed_output: [],\n\t\t\t\t\tfinal_output: void 0,\n\t\t\t\t\tlogs: {}\n\t\t\t\t}\n\t\t\t}] }));\n\t\t}\n\t\tif (!this._includeRun(run)) return;\n\t\tif (this.counterMapByRunName[run.name] === void 0) this.counterMapByRunName[run.name] = 0;\n\t\tthis.counterMapByRunName[run.name] += 1;\n\t\tconst count = this.counterMapByRunName[run.name];\n\t\tthis.keyMapByRunId[run.id] = count === 1 ? run.name : `${run.name}:${count}`;\n\t\tconst logEntry = {\n\t\t\tid: run.id,\n\t\t\tname: run.name,\n\t\t\ttype: run.run_type,\n\t\t\ttags: run.tags ?? [],\n\t\t\tmetadata: run.extra?.metadata ?? {},\n\t\t\tstart_time: new Date(run.start_time).toISOString(),\n\t\t\tstreamed_output: [],\n\t\t\tstreamed_output_str: [],\n\t\t\tfinal_output: void 0,\n\t\t\tend_time: void 0\n\t\t};\n\t\tif (this._schemaFormat === \"streaming_events\") logEntry.inputs = await _getStandardizedInputs(run, this._schemaFormat);\n\t\tawait this.writer.write(new RunLogPatch({ ops: [{\n\t\t\top: \"add\",\n\t\t\tpath: `/logs/${this.keyMapByRunId[run.id]}`,\n\t\t\tvalue: logEntry\n\t\t}] }));\n\t}\n\tasync onRunUpdate(run) {\n\t\ttry {\n\t\t\tconst runName = this.keyMapByRunId[run.id];\n\t\t\tif (runName === void 0) return;\n\t\t\tconst ops = [];\n\t\t\tif (this._schemaFormat === \"streaming_events\") ops.push({\n\t\t\t\top: \"replace\",\n\t\t\t\tpath: `/logs/${runName}/inputs`,\n\t\t\t\tvalue: await _getStandardizedInputs(run, this._schemaFormat)\n\t\t\t});\n\t\t\tops.push({\n\t\t\t\top: \"add\",\n\t\t\t\tpath: `/logs/${runName}/final_output`,\n\t\t\t\tvalue: await _getStandardizedOutputs(run, this._schemaFormat)\n\t\t\t});\n\t\t\tif (run.end_time !== void 0) ops.push({\n\t\t\t\top: \"add\",\n\t\t\t\tpath: `/logs/${runName}/end_time`,\n\t\t\t\tvalue: new Date(run.end_time).toISOString()\n\t\t\t});\n\t\t\tconst patch = new RunLogPatch({ ops });\n\t\t\tawait this.writer.write(patch);\n\t\t} finally {\n\t\t\tif (run.id === this.rootId) {\n\t\t\t\tconst patch = new RunLogPatch({ ops: [{\n\t\t\t\t\top: \"replace\",\n\t\t\t\t\tpath: \"/final_output\",\n\t\t\t\t\tvalue: await _getStandardizedOutputs(run, this._schemaFormat)\n\t\t\t\t}] });\n\t\t\t\tawait this.writer.write(patch);\n\t\t\t\tif (this.autoClose) await this.writer.close();\n\t\t\t}\n\t\t}\n\t}\n\tasync onLLMNewToken(run, token, kwargs) {\n\t\tconst runName = this.keyMapByRunId[run.id];\n\t\tif (runName === void 0) return;\n\t\tconst isChatModel = run.inputs.messages !== void 0;\n\t\tlet streamedOutputValue;\n\t\tif (isChatModel) if (isChatGenerationChunk(kwargs?.chunk)) streamedOutputValue = kwargs?.chunk;\n\t\telse streamedOutputValue = new AIMessageChunk({\n\t\t\tid: `run-${run.id}`,\n\t\t\tcontent: token\n\t\t});\n\t\telse streamedOutputValue = token;\n\t\tconst patch = new RunLogPatch({ ops: [{\n\t\t\top: \"add\",\n\t\t\tpath: `/logs/${runName}/streamed_output_str/-`,\n\t\t\tvalue: token\n\t\t}, {\n\t\t\top: \"add\",\n\t\t\tpath: `/logs/${runName}/streamed_output/-`,\n\t\t\tvalue: streamedOutputValue\n\t\t}] });\n\t\tawait this.writer.write(patch);\n\t}\n};\n\n//#endregion\nexport { LogStreamCallbackHandler, RunLog, RunLogPatch, isLogStreamHandler, log_stream_exports };\n//# sourceMappingURL=log_stream.js.map"],"names":["RunLog"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,140 +1,358 @@
1
- import { isNetworkError } from "./index.es125.js";
2
- function validateRetries(retries) {
3
- if (typeof retries === "number") {
4
- if (retries < 0) throw new TypeError("Expected `retries` to be a non-negative number.");
5
- if (Number.isNaN(retries)) throw new TypeError("Expected `retries` to be a valid number or Infinity, got NaN.");
6
- } else if (retries !== void 0) throw new TypeError("Expected `retries` to be a number or Infinity.");
1
+ import { AIMessageChunk } from "./index.es45.js";
2
+ import { BaseTracer } from "./index.es124.js";
3
+ import { IterableReadableStream } from "./index.es97.js";
4
+ import { GenerationChunk } from "./index.es125.js";
5
+ function assignName({ name, serialized }) {
6
+ if (name !== void 0) return name;
7
+ if (serialized?.name !== void 0) return serialized.name;
8
+ else if (serialized?.id !== void 0 && Array.isArray(serialized?.id)) return serialized.id[serialized.id.length - 1];
9
+ return "Unnamed";
7
10
  }
8
- function validateNumberOption(name, value, { min = 0, allowInfinity = false } = {}) {
9
- if (value === void 0) return;
10
- if (typeof value !== "number" || Number.isNaN(value)) throw new TypeError(`Expected \`${name}\` to be a number${allowInfinity ? " or Infinity" : ""}.`);
11
- if (!allowInfinity && !Number.isFinite(value)) throw new TypeError(`Expected \`${name}\` to be a finite number.`);
12
- if (value < min) throw new TypeError(`Expected \`${name}\` to be ≥ ${min}.`);
13
- }
14
- var AbortError = class extends Error {
15
- constructor(message) {
16
- super();
17
- if (message instanceof Error) {
18
- this.originalError = message;
19
- ({ message } = message);
11
+ const isStreamEventsHandler = (handler) => handler.name === "event_stream_tracer";
12
+ var EventStreamCallbackHandler = class extends BaseTracer {
13
+ autoClose = true;
14
+ includeNames;
15
+ includeTypes;
16
+ includeTags;
17
+ excludeNames;
18
+ excludeTypes;
19
+ excludeTags;
20
+ runInfoMap = /* @__PURE__ */ new Map();
21
+ tappedPromises = /* @__PURE__ */ new Map();
22
+ transformStream;
23
+ writer;
24
+ receiveStream;
25
+ readableStreamClosed = false;
26
+ name = "event_stream_tracer";
27
+ lc_prefer_streaming = true;
28
+ constructor(fields) {
29
+ super({
30
+ _awaitHandler: true,
31
+ ...fields
32
+ });
33
+ this.autoClose = fields?.autoClose ?? true;
34
+ this.includeNames = fields?.includeNames;
35
+ this.includeTypes = fields?.includeTypes;
36
+ this.includeTags = fields?.includeTags;
37
+ this.excludeNames = fields?.excludeNames;
38
+ this.excludeTypes = fields?.excludeTypes;
39
+ this.excludeTags = fields?.excludeTags;
40
+ this.transformStream = new TransformStream({ flush: () => {
41
+ this.readableStreamClosed = true;
42
+ } });
43
+ this.writer = this.transformStream.writable.getWriter();
44
+ this.receiveStream = IterableReadableStream.fromReadableStream(this.transformStream.readable);
45
+ }
46
+ [Symbol.asyncIterator]() {
47
+ return this.receiveStream;
48
+ }
49
+ async persistRun(_run) {
50
+ }
51
+ _includeRun(run) {
52
+ const runTags = run.tags ?? [];
53
+ let include = this.includeNames === void 0 && this.includeTags === void 0 && this.includeTypes === void 0;
54
+ if (this.includeNames !== void 0) include = include || this.includeNames.includes(run.name);
55
+ if (this.includeTypes !== void 0) include = include || this.includeTypes.includes(run.runType);
56
+ if (this.includeTags !== void 0) include = include || runTags.find((tag) => this.includeTags?.includes(tag)) !== void 0;
57
+ if (this.excludeNames !== void 0) include = include && !this.excludeNames.includes(run.name);
58
+ if (this.excludeTypes !== void 0) include = include && !this.excludeTypes.includes(run.runType);
59
+ if (this.excludeTags !== void 0) include = include && runTags.every((tag) => !this.excludeTags?.includes(tag));
60
+ return include;
61
+ }
62
+ async *tapOutputIterable(runId, outputStream) {
63
+ const firstChunk = await outputStream.next();
64
+ if (firstChunk.done) return;
65
+ const runInfo = this.runInfoMap.get(runId);
66
+ if (runInfo === void 0) {
67
+ yield firstChunk.value;
68
+ return;
69
+ }
70
+ function _formatOutputChunk(eventType, data) {
71
+ if (eventType === "llm" && typeof data === "string") return new GenerationChunk({ text: data });
72
+ return data;
73
+ }
74
+ let tappedPromise = this.tappedPromises.get(runId);
75
+ if (tappedPromise === void 0) {
76
+ let tappedPromiseResolver;
77
+ tappedPromise = new Promise((resolve) => {
78
+ tappedPromiseResolver = resolve;
79
+ });
80
+ this.tappedPromises.set(runId, tappedPromise);
81
+ try {
82
+ const event = {
83
+ event: `on_${runInfo.runType}_stream`,
84
+ run_id: runId,
85
+ name: runInfo.name,
86
+ tags: runInfo.tags,
87
+ metadata: runInfo.metadata,
88
+ data: {}
89
+ };
90
+ await this.send({
91
+ ...event,
92
+ data: { chunk: _formatOutputChunk(runInfo.runType, firstChunk.value) }
93
+ }, runInfo);
94
+ yield firstChunk.value;
95
+ for await (const chunk of outputStream) {
96
+ if (runInfo.runType !== "tool" && runInfo.runType !== "retriever") await this.send({
97
+ ...event,
98
+ data: { chunk: _formatOutputChunk(runInfo.runType, chunk) }
99
+ }, runInfo);
100
+ yield chunk;
101
+ }
102
+ } finally {
103
+ tappedPromiseResolver?.();
104
+ }
20
105
  } else {
21
- this.originalError = new Error(message);
22
- this.originalError.stack = this.stack;
106
+ yield firstChunk.value;
107
+ for await (const chunk of outputStream) yield chunk;
23
108
  }
24
- this.name = "AbortError";
25
- this.message = message;
26
109
  }
27
- };
28
- function calculateDelay(retriesConsumed, options) {
29
- const attempt = Math.max(1, retriesConsumed + 1);
30
- const random = options.randomize ? Math.random() + 1 : 1;
31
- let timeout = Math.round(random * options.minTimeout * options.factor ** (attempt - 1));
32
- timeout = Math.min(timeout, options.maxTimeout);
33
- return timeout;
34
- }
35
- function calculateRemainingTime(start, max) {
36
- if (!Number.isFinite(max)) return max;
37
- return max - (performance.now() - start);
38
- }
39
- async function onAttemptFailure({ error, attemptNumber, retriesConsumed, startTime, options }) {
40
- const normalizedError = error instanceof Error ? error : /* @__PURE__ */ new TypeError(`Non-error was thrown: "${error}". You should only throw errors.`);
41
- if (normalizedError instanceof AbortError) throw normalizedError.originalError;
42
- const retriesLeft = Number.isFinite(options.retries) ? Math.max(0, options.retries - retriesConsumed) : options.retries;
43
- const maxRetryTime = options.maxRetryTime ?? Number.POSITIVE_INFINITY;
44
- const context = Object.freeze({
45
- error: normalizedError,
46
- attemptNumber,
47
- retriesLeft,
48
- retriesConsumed
49
- });
50
- await options.onFailedAttempt(context);
51
- if (calculateRemainingTime(startTime, maxRetryTime) <= 0) throw normalizedError;
52
- const consumeRetry = await options.shouldConsumeRetry(context);
53
- const remainingTime = calculateRemainingTime(startTime, maxRetryTime);
54
- if (remainingTime <= 0 || retriesLeft <= 0) throw normalizedError;
55
- if (normalizedError instanceof TypeError && !isNetworkError(normalizedError)) {
56
- if (consumeRetry) throw normalizedError;
57
- options.signal?.throwIfAborted();
58
- return false;
59
- }
60
- if (!await options.shouldRetry(context)) throw normalizedError;
61
- if (!consumeRetry) {
62
- options.signal?.throwIfAborted();
63
- return false;
64
- }
65
- const delayTime = calculateDelay(retriesConsumed, options);
66
- const finalDelay = Math.min(delayTime, remainingTime);
67
- if (finalDelay > 0) await new Promise((resolve, reject) => {
68
- const onAbort = () => {
69
- clearTimeout(timeoutToken);
70
- options.signal?.removeEventListener("abort", onAbort);
71
- reject(options.signal.reason);
110
+ async send(payload, run) {
111
+ if (this.readableStreamClosed) return;
112
+ if (this._includeRun(run)) await this.writer.write(payload);
113
+ }
114
+ async sendEndEvent(payload, run) {
115
+ const tappedPromise = this.tappedPromises.get(payload.run_id);
116
+ if (tappedPromise !== void 0) tappedPromise.then(() => {
117
+ this.send(payload, run);
118
+ });
119
+ else await this.send(payload, run);
120
+ }
121
+ async onLLMStart(run) {
122
+ const runName = assignName(run);
123
+ const runType = run.inputs.messages !== void 0 ? "chat_model" : "llm";
124
+ const runInfo = {
125
+ tags: run.tags ?? [],
126
+ metadata: run.extra?.metadata ?? {},
127
+ name: runName,
128
+ runType,
129
+ inputs: run.inputs
72
130
  };
73
- const timeoutToken = setTimeout(() => {
74
- options.signal?.removeEventListener("abort", onAbort);
75
- resolve();
76
- }, finalDelay);
77
- if (options.unref) timeoutToken.unref?.();
78
- options.signal?.addEventListener("abort", onAbort, { once: true });
79
- });
80
- options.signal?.throwIfAborted();
81
- return true;
82
- }
83
- async function pRetry(input, options = {}) {
84
- options = { ...options };
85
- validateRetries(options.retries);
86
- if (Object.hasOwn(options, "forever")) throw new Error("The `forever` option is no longer supported. For many use-cases, you can set `retries: Infinity` instead.");
87
- options.retries ??= 10;
88
- options.factor ??= 2;
89
- options.minTimeout ??= 1e3;
90
- options.maxTimeout ??= Number.POSITIVE_INFINITY;
91
- options.maxRetryTime ??= Number.POSITIVE_INFINITY;
92
- options.randomize ??= false;
93
- options.onFailedAttempt ??= () => {
94
- };
95
- options.shouldRetry ??= () => true;
96
- options.shouldConsumeRetry ??= () => true;
97
- validateNumberOption("factor", options.factor, {
98
- min: 0,
99
- allowInfinity: false
100
- });
101
- validateNumberOption("minTimeout", options.minTimeout, {
102
- min: 0,
103
- allowInfinity: false
104
- });
105
- validateNumberOption("maxTimeout", options.maxTimeout, {
106
- min: 0,
107
- allowInfinity: true
108
- });
109
- validateNumberOption("maxRetryTime", options.maxRetryTime, {
110
- min: 0,
111
- allowInfinity: true
112
- });
113
- if (!(options.factor > 0)) options.factor = 1;
114
- options.signal?.throwIfAborted();
115
- let attemptNumber = 0;
116
- let retriesConsumed = 0;
117
- const startTime = performance.now();
118
- while (Number.isFinite(options.retries) ? retriesConsumed <= options.retries : true) {
119
- attemptNumber++;
120
- try {
121
- options.signal?.throwIfAborted();
122
- const result = await input(attemptNumber);
123
- options.signal?.throwIfAborted();
124
- return result;
125
- } catch (error) {
126
- if (await onAttemptFailure({
127
- error,
128
- attemptNumber,
129
- retriesConsumed,
130
- startTime,
131
- options
132
- })) retriesConsumed++;
131
+ this.runInfoMap.set(run.id, runInfo);
132
+ const eventName = `on_${runType}_start`;
133
+ await this.send({
134
+ event: eventName,
135
+ data: { input: run.inputs },
136
+ name: runName,
137
+ tags: run.tags ?? [],
138
+ run_id: run.id,
139
+ metadata: run.extra?.metadata ?? {}
140
+ }, runInfo);
141
+ }
142
+ async onLLMNewToken(run, token, kwargs) {
143
+ const runInfo = this.runInfoMap.get(run.id);
144
+ let chunk;
145
+ let eventName;
146
+ if (runInfo === void 0) throw new Error(`onLLMNewToken: Run ID ${run.id} not found in run map.`);
147
+ if (this.runInfoMap.size === 1) return;
148
+ if (runInfo.runType === "chat_model") {
149
+ eventName = "on_chat_model_stream";
150
+ if (kwargs?.chunk === void 0) chunk = new AIMessageChunk({
151
+ content: token,
152
+ id: `run-${run.id}`
153
+ });
154
+ else chunk = kwargs.chunk.message;
155
+ } else if (runInfo.runType === "llm") {
156
+ eventName = "on_llm_stream";
157
+ if (kwargs?.chunk === void 0) chunk = new GenerationChunk({ text: token });
158
+ else chunk = kwargs.chunk;
159
+ } else throw new Error(`Unexpected run type ${runInfo.runType}`);
160
+ await this.send({
161
+ event: eventName,
162
+ data: { chunk },
163
+ run_id: run.id,
164
+ name: runInfo.name,
165
+ tags: runInfo.tags,
166
+ metadata: runInfo.metadata
167
+ }, runInfo);
168
+ }
169
+ async onLLMEnd(run) {
170
+ const runInfo = this.runInfoMap.get(run.id);
171
+ this.runInfoMap.delete(run.id);
172
+ let eventName;
173
+ if (runInfo === void 0) throw new Error(`onLLMEnd: Run ID ${run.id} not found in run map.`);
174
+ const generations = run.outputs?.generations;
175
+ let output;
176
+ if (runInfo.runType === "chat_model") {
177
+ for (const generation of generations ?? []) {
178
+ if (output !== void 0) break;
179
+ output = generation[0]?.message;
180
+ }
181
+ eventName = "on_chat_model_end";
182
+ } else if (runInfo.runType === "llm") {
183
+ output = {
184
+ generations: generations?.map((generation) => {
185
+ return generation.map((chunk) => {
186
+ return {
187
+ text: chunk.text,
188
+ generationInfo: chunk.generationInfo
189
+ };
190
+ });
191
+ }),
192
+ llmOutput: run.outputs?.llmOutput ?? {}
193
+ };
194
+ eventName = "on_llm_end";
195
+ } else throw new Error(`onLLMEnd: Unexpected run type: ${runInfo.runType}`);
196
+ await this.sendEndEvent({
197
+ event: eventName,
198
+ data: {
199
+ output,
200
+ input: runInfo.inputs
201
+ },
202
+ run_id: run.id,
203
+ name: runInfo.name,
204
+ tags: runInfo.tags,
205
+ metadata: runInfo.metadata
206
+ }, runInfo);
207
+ }
208
+ async onChainStart(run) {
209
+ const runName = assignName(run);
210
+ const runType = run.run_type ?? "chain";
211
+ const runInfo = {
212
+ tags: run.tags ?? [],
213
+ metadata: run.extra?.metadata ?? {},
214
+ name: runName,
215
+ runType: run.run_type
216
+ };
217
+ let eventData = {};
218
+ if (run.inputs.input === "" && Object.keys(run.inputs).length === 1) {
219
+ eventData = {};
220
+ runInfo.inputs = {};
221
+ } else if (run.inputs.input !== void 0) {
222
+ eventData.input = run.inputs.input;
223
+ runInfo.inputs = run.inputs.input;
224
+ } else {
225
+ eventData.input = run.inputs;
226
+ runInfo.inputs = run.inputs;
133
227
  }
228
+ this.runInfoMap.set(run.id, runInfo);
229
+ await this.send({
230
+ event: `on_${runType}_start`,
231
+ data: eventData,
232
+ name: runName,
233
+ tags: run.tags ?? [],
234
+ run_id: run.id,
235
+ metadata: run.extra?.metadata ?? {}
236
+ }, runInfo);
134
237
  }
135
- throw new Error("Retry attempts exhausted without throwing an error.");
136
- }
238
+ async onChainEnd(run) {
239
+ const runInfo = this.runInfoMap.get(run.id);
240
+ this.runInfoMap.delete(run.id);
241
+ if (runInfo === void 0) throw new Error(`onChainEnd: Run ID ${run.id} not found in run map.`);
242
+ const eventName = `on_${run.run_type}_end`;
243
+ const inputs = run.inputs ?? runInfo.inputs ?? {};
244
+ const outputs = run.outputs?.output ?? run.outputs;
245
+ const data = {
246
+ output: outputs,
247
+ input: inputs
248
+ };
249
+ if (inputs.input && Object.keys(inputs).length === 1) {
250
+ data.input = inputs.input;
251
+ runInfo.inputs = inputs.input;
252
+ }
253
+ await this.sendEndEvent({
254
+ event: eventName,
255
+ data,
256
+ run_id: run.id,
257
+ name: runInfo.name,
258
+ tags: runInfo.tags,
259
+ metadata: runInfo.metadata ?? {}
260
+ }, runInfo);
261
+ }
262
+ async onToolStart(run) {
263
+ const runName = assignName(run);
264
+ const runInfo = {
265
+ tags: run.tags ?? [],
266
+ metadata: run.extra?.metadata ?? {},
267
+ name: runName,
268
+ runType: "tool",
269
+ inputs: run.inputs ?? {}
270
+ };
271
+ this.runInfoMap.set(run.id, runInfo);
272
+ await this.send({
273
+ event: "on_tool_start",
274
+ data: { input: run.inputs ?? {} },
275
+ name: runName,
276
+ run_id: run.id,
277
+ tags: run.tags ?? [],
278
+ metadata: run.extra?.metadata ?? {}
279
+ }, runInfo);
280
+ }
281
+ async onToolEnd(run) {
282
+ const runInfo = this.runInfoMap.get(run.id);
283
+ this.runInfoMap.delete(run.id);
284
+ if (runInfo === void 0) throw new Error(`onToolEnd: Run ID ${run.id} not found in run map.`);
285
+ if (runInfo.inputs === void 0) throw new Error(`onToolEnd: Run ID ${run.id} is a tool call, and is expected to have traced inputs.`);
286
+ const output = run.outputs?.output === void 0 ? run.outputs : run.outputs.output;
287
+ await this.sendEndEvent({
288
+ event: "on_tool_end",
289
+ data: {
290
+ output,
291
+ input: runInfo.inputs
292
+ },
293
+ run_id: run.id,
294
+ name: runInfo.name,
295
+ tags: runInfo.tags,
296
+ metadata: runInfo.metadata
297
+ }, runInfo);
298
+ }
299
+ async onRetrieverStart(run) {
300
+ const runName = assignName(run);
301
+ const runType = "retriever";
302
+ const runInfo = {
303
+ tags: run.tags ?? [],
304
+ metadata: run.extra?.metadata ?? {},
305
+ name: runName,
306
+ runType,
307
+ inputs: { query: run.inputs.query }
308
+ };
309
+ this.runInfoMap.set(run.id, runInfo);
310
+ await this.send({
311
+ event: "on_retriever_start",
312
+ data: { input: { query: run.inputs.query } },
313
+ name: runName,
314
+ tags: run.tags ?? [],
315
+ run_id: run.id,
316
+ metadata: run.extra?.metadata ?? {}
317
+ }, runInfo);
318
+ }
319
+ async onRetrieverEnd(run) {
320
+ const runInfo = this.runInfoMap.get(run.id);
321
+ this.runInfoMap.delete(run.id);
322
+ if (runInfo === void 0) throw new Error(`onRetrieverEnd: Run ID ${run.id} not found in run map.`);
323
+ await this.sendEndEvent({
324
+ event: "on_retriever_end",
325
+ data: {
326
+ output: run.outputs?.documents ?? run.outputs,
327
+ input: runInfo.inputs
328
+ },
329
+ run_id: run.id,
330
+ name: runInfo.name,
331
+ tags: runInfo.tags,
332
+ metadata: runInfo.metadata
333
+ }, runInfo);
334
+ }
335
+ async handleCustomEvent(eventName, data, runId) {
336
+ const runInfo = this.runInfoMap.get(runId);
337
+ if (runInfo === void 0) throw new Error(`handleCustomEvent: Run ID ${runId} not found in run map.`);
338
+ await this.send({
339
+ event: "on_custom_event",
340
+ run_id: runId,
341
+ name: eventName,
342
+ tags: runInfo.tags,
343
+ metadata: runInfo.metadata,
344
+ data
345
+ }, runInfo);
346
+ }
347
+ async finish() {
348
+ const pendingPromises = [...this.tappedPromises.values()];
349
+ Promise.all(pendingPromises).finally(() => {
350
+ this.writer.close();
351
+ });
352
+ }
353
+ };
137
354
  export {
138
- pRetry
355
+ EventStreamCallbackHandler,
356
+ isStreamEventsHandler
139
357
  };
140
358
  //# sourceMappingURL=index.es99.js.map