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.es97.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
+ {"version":3,"file":"index.es97.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/stream.js"],"sourcesContent":["import { __export } from \"../_virtual/rolldown_runtime.js\";\nimport { AsyncLocalStorageProviderSingleton } from \"../singletons/async_local_storage/index.js\";\nimport \"../singletons/index.js\";\nimport { pickRunnableConfigKeys } from \"../runnables/config.js\";\nimport { raceWithSignal } from \"./signal.js\";\n\n//#region src/utils/stream.ts\nvar stream_exports = {};\n__export(stream_exports, {\n\tAsyncGeneratorWithSetup: () => AsyncGeneratorWithSetup,\n\tIterableReadableStream: () => IterableReadableStream,\n\tatee: () => atee,\n\tconcat: () => concat,\n\tpipeGeneratorWithSetup: () => pipeGeneratorWithSetup\n});\nvar IterableReadableStream = class IterableReadableStream extends ReadableStream {\n\treader;\n\tensureReader() {\n\t\tif (!this.reader) this.reader = this.getReader();\n\t}\n\tasync next() {\n\t\tthis.ensureReader();\n\t\ttry {\n\t\t\tconst result = await this.reader.read();\n\t\t\tif (result.done) {\n\t\t\t\tthis.reader.releaseLock();\n\t\t\t\treturn {\n\t\t\t\t\tdone: true,\n\t\t\t\t\tvalue: void 0\n\t\t\t\t};\n\t\t\t} else return {\n\t\t\t\tdone: false,\n\t\t\t\tvalue: result.value\n\t\t\t};\n\t\t} catch (e) {\n\t\t\tthis.reader.releaseLock();\n\t\t\tthrow e;\n\t\t}\n\t}\n\tasync return() {\n\t\tthis.ensureReader();\n\t\tif (this.locked) {\n\t\t\tconst cancelPromise = this.reader.cancel();\n\t\t\tthis.reader.releaseLock();\n\t\t\tawait cancelPromise;\n\t\t}\n\t\treturn {\n\t\t\tdone: true,\n\t\t\tvalue: void 0\n\t\t};\n\t}\n\tasync throw(e) {\n\t\tthis.ensureReader();\n\t\tif (this.locked) {\n\t\t\tconst cancelPromise = this.reader.cancel();\n\t\t\tthis.reader.releaseLock();\n\t\t\tawait cancelPromise;\n\t\t}\n\t\tthrow e;\n\t}\n\t[Symbol.asyncIterator]() {\n\t\treturn this;\n\t}\n\tasync [Symbol.asyncDispose]() {\n\t\tawait this.return();\n\t}\n\tstatic fromReadableStream(stream) {\n\t\tconst reader = stream.getReader();\n\t\treturn new IterableReadableStream({\n\t\t\tstart(controller) {\n\t\t\t\treturn pump();\n\t\t\t\tfunction pump() {\n\t\t\t\t\treturn reader.read().then(({ done, value }) => {\n\t\t\t\t\t\tif (done) {\n\t\t\t\t\t\t\tcontroller.close();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontroller.enqueue(value);\n\t\t\t\t\t\treturn pump();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\tcancel() {\n\t\t\t\treader.releaseLock();\n\t\t\t}\n\t\t});\n\t}\n\tstatic fromAsyncGenerator(generator) {\n\t\treturn new IterableReadableStream({\n\t\t\tasync pull(controller) {\n\t\t\t\tconst { value, done } = await generator.next();\n\t\t\t\tif (done) controller.close();\n\t\t\t\tcontroller.enqueue(value);\n\t\t\t},\n\t\t\tasync cancel(reason) {\n\t\t\t\tawait generator.return(reason);\n\t\t\t}\n\t\t});\n\t}\n};\nfunction atee(iter, length = 2) {\n\tconst buffers = Array.from({ length }, () => []);\n\treturn buffers.map(async function* makeIter(buffer) {\n\t\twhile (true) if (buffer.length === 0) {\n\t\t\tconst result = await iter.next();\n\t\t\tfor (const buffer$1 of buffers) buffer$1.push(result);\n\t\t} else if (buffer[0].done) return;\n\t\telse yield buffer.shift().value;\n\t});\n}\nfunction concat(first, second) {\n\tif (Array.isArray(first) && Array.isArray(second)) return first.concat(second);\n\telse if (typeof first === \"string\" && typeof second === \"string\") return first + second;\n\telse if (typeof first === \"number\" && typeof second === \"number\") return first + second;\n\telse if (\"concat\" in first && typeof first.concat === \"function\") return first.concat(second);\n\telse if (typeof first === \"object\" && typeof second === \"object\") {\n\t\tconst chunk = { ...first };\n\t\tfor (const [key, value] of Object.entries(second)) if (key in chunk && !Array.isArray(chunk[key])) chunk[key] = concat(chunk[key], value);\n\t\telse chunk[key] = value;\n\t\treturn chunk;\n\t} else throw new Error(`Cannot concat ${typeof first} and ${typeof second}`);\n}\nvar AsyncGeneratorWithSetup = class {\n\tgenerator;\n\tsetup;\n\tconfig;\n\tsignal;\n\tfirstResult;\n\tfirstResultUsed = false;\n\tconstructor(params) {\n\t\tthis.generator = params.generator;\n\t\tthis.config = params.config;\n\t\tthis.signal = params.signal ?? this.config?.signal;\n\t\tthis.setup = new Promise((resolve, reject) => {\n\t\t\tAsyncLocalStorageProviderSingleton.runWithConfig(pickRunnableConfigKeys(params.config), async () => {\n\t\t\t\tthis.firstResult = params.generator.next();\n\t\t\t\tif (params.startSetup) this.firstResult.then(params.startSetup).then(resolve, reject);\n\t\t\t\telse this.firstResult.then((_result) => resolve(void 0), reject);\n\t\t\t}, true);\n\t\t});\n\t}\n\tasync next(...args) {\n\t\tthis.signal?.throwIfAborted();\n\t\tif (!this.firstResultUsed) {\n\t\t\tthis.firstResultUsed = true;\n\t\t\treturn this.firstResult;\n\t\t}\n\t\treturn AsyncLocalStorageProviderSingleton.runWithConfig(pickRunnableConfigKeys(this.config), this.signal ? async () => {\n\t\t\treturn raceWithSignal(this.generator.next(...args), this.signal);\n\t\t} : async () => {\n\t\t\treturn this.generator.next(...args);\n\t\t}, true);\n\t}\n\tasync return(value) {\n\t\treturn this.generator.return(value);\n\t}\n\tasync throw(e) {\n\t\treturn this.generator.throw(e);\n\t}\n\t[Symbol.asyncIterator]() {\n\t\treturn this;\n\t}\n\tasync [Symbol.asyncDispose]() {\n\t\tawait this.return();\n\t}\n};\nasync function pipeGeneratorWithSetup(to, generator, startSetup, signal, ...args) {\n\tconst gen = new AsyncGeneratorWithSetup({\n\t\tgenerator,\n\t\tstartSetup,\n\t\tsignal\n\t});\n\tconst setup = await gen.setup;\n\treturn {\n\t\toutput: to(gen, setup, ...args),\n\t\tsetup\n\t};\n}\n\n//#endregion\nexport { AsyncGeneratorWithSetup, IterableReadableStream, atee, concat, pipeGeneratorWithSetup, stream_exports };\n//# sourceMappingURL=stream.js.map"],"names":["IterableReadableStream"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,15 +1,79 @@
1
- import { AIMessageChunk } from "./index.es41.js";
2
- import { BaseTracer } from "./index.es123.js";
3
- import { IterableReadableStream } from "./index.es96.js";
4
- import { GenerationChunk } from "./index.es124.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";
1
+ import { __export } from "./index.es55.js";
2
+ import { AIMessageChunk } from "./index.es45.js";
3
+ import { applyPatch } from "./index.es122.js";
4
+ import "./index.es123.js";
5
+ import { BaseTracer } from "./index.es124.js";
6
+ import { IterableReadableStream } from "./index.es97.js";
7
+ var log_stream_exports = {};
8
+ __export(log_stream_exports, {
9
+ LogStreamCallbackHandler: () => LogStreamCallbackHandler,
10
+ RunLog: () => RunLog,
11
+ RunLogPatch: () => RunLogPatch,
12
+ isLogStreamHandler: () => isLogStreamHandler
13
+ });
14
+ var RunLogPatch = class {
15
+ ops;
16
+ constructor(fields) {
17
+ this.ops = fields.ops ?? [];
18
+ }
19
+ concat(other) {
20
+ const ops = this.ops.concat(other.ops);
21
+ const states = applyPatch({}, ops);
22
+ return new RunLog({
23
+ ops,
24
+ state: states[states.length - 1].newDocument
25
+ });
26
+ }
27
+ };
28
+ var RunLog = class RunLog2 extends RunLogPatch {
29
+ state;
30
+ constructor(fields) {
31
+ super(fields);
32
+ this.state = fields.state;
33
+ }
34
+ concat(other) {
35
+ const ops = this.ops.concat(other.ops);
36
+ const states = applyPatch(this.state, other.ops);
37
+ return new RunLog2({
38
+ ops,
39
+ state: states[states.length - 1].newDocument
40
+ });
41
+ }
42
+ static fromRunLogPatch(patch) {
43
+ const states = applyPatch({}, patch.ops);
44
+ return new RunLog2({
45
+ ops: patch.ops,
46
+ state: states[states.length - 1].newDocument
47
+ });
48
+ }
49
+ };
50
+ const isLogStreamHandler = (handler) => handler.name === "log_stream_tracer";
51
+ async function _getStandardizedInputs(run, schemaFormat) {
52
+ if (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.");
53
+ const { inputs } = run;
54
+ if ([
55
+ "retriever",
56
+ "llm",
57
+ "prompt"
58
+ ].includes(run.run_type)) return inputs;
59
+ if (Object.keys(inputs).length === 1 && inputs?.input === "") return void 0;
60
+ return inputs.input;
10
61
  }
11
- const isStreamEventsHandler = (handler) => handler.name === "event_stream_tracer";
12
- var EventStreamCallbackHandler = class extends BaseTracer {
62
+ async function _getStandardizedOutputs(run, schemaFormat) {
63
+ const { outputs } = run;
64
+ if (schemaFormat === "original") return outputs;
65
+ if ([
66
+ "retriever",
67
+ "llm",
68
+ "prompt"
69
+ ].includes(run.run_type)) return outputs;
70
+ if (outputs !== void 0 && Object.keys(outputs).length === 1 && outputs?.output !== void 0) return outputs.output;
71
+ return outputs;
72
+ }
73
+ function isChatGenerationChunk(x) {
74
+ return x !== void 0 && x.message !== void 0;
75
+ }
76
+ var LogStreamCallbackHandler = class extends BaseTracer {
13
77
  autoClose = true;
14
78
  includeNames;
15
79
  includeTypes;
@@ -17,13 +81,14 @@ var EventStreamCallbackHandler = class extends BaseTracer {
17
81
  excludeNames;
18
82
  excludeTypes;
19
83
  excludeTags;
20
- runInfoMap = /* @__PURE__ */ new Map();
21
- tappedPromises = /* @__PURE__ */ new Map();
84
+ _schemaFormat = "original";
85
+ rootId;
86
+ keyMapByRunId = {};
87
+ counterMapByRunName = {};
22
88
  transformStream;
23
89
  writer;
24
90
  receiveStream;
25
- readableStreamClosed = false;
26
- name = "event_stream_tracer";
91
+ name = "log_stream_tracer";
27
92
  lc_prefer_streaming = true;
28
93
  constructor(fields) {
29
94
  super({
@@ -37,9 +102,8 @@ var EventStreamCallbackHandler = class extends BaseTracer {
37
102
  this.excludeNames = fields?.excludeNames;
38
103
  this.excludeTypes = fields?.excludeTypes;
39
104
  this.excludeTags = fields?.excludeTags;
40
- this.transformStream = new TransformStream({ flush: () => {
41
- this.readableStreamClosed = true;
42
- } });
105
+ this._schemaFormat = fields?._schemaFormat ?? this._schemaFormat;
106
+ this.transformStream = new TransformStream();
43
107
  this.writer = this.transformStream.writable.getWriter();
44
108
  this.receiveStream = IterableReadableStream.fromReadableStream(this.transformStream.readable);
45
109
  }
@@ -49,310 +113,132 @@ var EventStreamCallbackHandler = class extends BaseTracer {
49
113
  async persistRun(_run) {
50
114
  }
51
115
  _includeRun(run) {
116
+ if (run.id === this.rootId) return false;
52
117
  const runTags = run.tags ?? [];
53
118
  let include = this.includeNames === void 0 && this.includeTags === void 0 && this.includeTypes === void 0;
54
119
  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);
120
+ if (this.includeTypes !== void 0) include = include || this.includeTypes.includes(run.run_type);
56
121
  if (this.includeTags !== void 0) include = include || runTags.find((tag) => this.includeTags?.includes(tag)) !== void 0;
57
122
  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);
123
+ if (this.excludeTypes !== void 0) include = include && !this.excludeTypes.includes(run.run_type);
59
124
  if (this.excludeTags !== void 0) include = include && runTags.every((tag) => !this.excludeTags?.includes(tag));
60
125
  return include;
61
126
  }
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?.();
127
+ async *tapOutputIterable(runId, output) {
128
+ for await (const chunk of output) {
129
+ if (runId !== this.rootId) {
130
+ const key = this.keyMapByRunId[runId];
131
+ if (key) await this.writer.write(new RunLogPatch({ ops: [{
132
+ op: "add",
133
+ path: `/logs/${key}/streamed_output/-`,
134
+ value: chunk
135
+ }] }));
104
136
  }
105
- } else {
106
- yield firstChunk.value;
107
- for await (const chunk of outputStream) yield chunk;
137
+ yield chunk;
108
138
  }
109
139
  }
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 = {
140
+ async onRunCreate(run) {
141
+ if (this.rootId === void 0) {
142
+ this.rootId = run.id;
143
+ await this.writer.write(new RunLogPatch({ ops: [{
144
+ op: "replace",
145
+ path: "",
146
+ value: {
147
+ id: run.id,
148
+ name: run.name,
149
+ type: run.run_type,
150
+ streamed_output: [],
151
+ final_output: void 0,
152
+ logs: {}
153
+ }
154
+ }] }));
155
+ }
156
+ if (!this._includeRun(run)) return;
157
+ if (this.counterMapByRunName[run.name] === void 0) this.counterMapByRunName[run.name] = 0;
158
+ this.counterMapByRunName[run.name] += 1;
159
+ const count = this.counterMapByRunName[run.name];
160
+ this.keyMapByRunId[run.id] = count === 1 ? run.name : `${run.name}:${count}`;
161
+ const logEntry = {
162
+ id: run.id,
163
+ name: run.name,
164
+ type: run.run_type,
125
165
  tags: run.tags ?? [],
126
166
  metadata: run.extra?.metadata ?? {},
127
- name: runName,
128
- runType,
129
- inputs: run.inputs
167
+ start_time: new Date(run.start_time).toISOString(),
168
+ streamed_output: [],
169
+ streamed_output_str: [],
170
+ final_output: void 0,
171
+ end_time: void 0
130
172
  };
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}`
173
+ if (this._schemaFormat === "streaming_events") logEntry.inputs = await _getStandardizedInputs(run, this._schemaFormat);
174
+ await this.writer.write(new RunLogPatch({ ops: [{
175
+ op: "add",
176
+ path: `/logs/${this.keyMapByRunId[run.id]}`,
177
+ value: logEntry
178
+ }] }));
179
+ }
180
+ async onRunUpdate(run) {
181
+ try {
182
+ const runName = this.keyMapByRunId[run.id];
183
+ if (runName === void 0) return;
184
+ const ops = [];
185
+ if (this._schemaFormat === "streaming_events") ops.push({
186
+ op: "replace",
187
+ path: `/logs/${runName}/inputs`,
188
+ value: await _getStandardizedInputs(run, this._schemaFormat)
153
189
  });
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;
190
+ ops.push({
191
+ op: "add",
192
+ path: `/logs/${runName}/final_output`,
193
+ value: await _getStandardizedOutputs(run, this._schemaFormat)
194
+ });
195
+ if (run.end_time !== void 0) ops.push({
196
+ op: "add",
197
+ path: `/logs/${runName}/end_time`,
198
+ value: new Date(run.end_time).toISOString()
199
+ });
200
+ const patch = new RunLogPatch({ ops });
201
+ await this.writer.write(patch);
202
+ } finally {
203
+ if (run.id === this.rootId) {
204
+ const patch = new RunLogPatch({ ops: [{
205
+ op: "replace",
206
+ path: "/final_output",
207
+ value: await _getStandardizedOutputs(run, this._schemaFormat)
208
+ }] });
209
+ await this.writer.write(patch);
210
+ if (this.autoClose) await this.writer.close();
180
211
  }
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;
227
212
  }
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);
237
- }
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
213
  }
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();
214
+ async onLLMNewToken(run, token, kwargs) {
215
+ const runName = this.keyMapByRunId[run.id];
216
+ if (runName === void 0) return;
217
+ const isChatModel = run.inputs.messages !== void 0;
218
+ let streamedOutputValue;
219
+ if (isChatModel) if (isChatGenerationChunk(kwargs?.chunk)) streamedOutputValue = kwargs?.chunk;
220
+ else streamedOutputValue = new AIMessageChunk({
221
+ id: `run-${run.id}`,
222
+ content: token
351
223
  });
224
+ else streamedOutputValue = token;
225
+ const patch = new RunLogPatch({ ops: [{
226
+ op: "add",
227
+ path: `/logs/${runName}/streamed_output_str/-`,
228
+ value: token
229
+ }, {
230
+ op: "add",
231
+ path: `/logs/${runName}/streamed_output/-`,
232
+ value: streamedOutputValue
233
+ }] });
234
+ await this.writer.write(patch);
352
235
  }
353
236
  };
354
237
  export {
355
- EventStreamCallbackHandler,
356
- isStreamEventsHandler
238
+ LogStreamCallbackHandler,
239
+ RunLog,
240
+ RunLogPatch,
241
+ isLogStreamHandler,
242
+ log_stream_exports
357
243
  };
358
244
  //# sourceMappingURL=index.es98.js.map