langgraph-ui-components 0.0.4 → 0.0.6
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.
- package/dist/index.es10.js +31 -16
- package/dist/index.es10.js.map +1 -1
- package/dist/index.es100.js +36 -3156
- package/dist/index.es100.js.map +1 -1
- package/dist/index.es101.js +162 -33
- package/dist/index.es101.js.map +1 -1
- package/dist/index.es102.js +203 -5
- package/dist/index.es102.js.map +1 -1
- package/dist/index.es103.js +13 -72
- package/dist/index.es103.js.map +1 -1
- package/dist/index.es104.js +27 -34
- package/dist/index.es104.js.map +1 -1
- package/dist/index.es105.js +34 -5
- package/dist/index.es105.js.map +1 -1
- package/dist/index.es106.js +3159 -2
- package/dist/index.es106.js.map +1 -1
- package/dist/index.es107.js +5 -11
- package/dist/index.es107.js.map +1 -1
- package/dist/index.es108.js +2 -503
- package/dist/index.es108.js.map +1 -1
- package/dist/index.es109.js +16 -5
- package/dist/index.es109.js.map +1 -1
- package/dist/index.es11.js +146 -120
- package/dist/index.es11.js.map +1 -1
- package/dist/index.es110.js +13 -2
- package/dist/index.es110.js.map +1 -1
- package/dist/index.es111.js +484 -129
- package/dist/index.es111.js.map +1 -1
- package/dist/index.es112.js +5 -906
- package/dist/index.es112.js.map +1 -1
- package/dist/index.es113.js +2 -282
- package/dist/index.es113.js.map +1 -1
- package/dist/index.es114.js +148 -4
- package/dist/index.es114.js.map +1 -1
- package/dist/index.es115.js +869 -407
- package/dist/index.es115.js.map +1 -1
- package/dist/index.es116.js +274 -40
- package/dist/index.es116.js.map +1 -1
- package/dist/index.es117.js +4 -24
- package/dist/index.es117.js.map +1 -1
- package/dist/index.es118.js +437 -72
- package/dist/index.es118.js.map +1 -1
- package/dist/index.es119.js +42 -125
- package/dist/index.es119.js.map +1 -1
- package/dist/index.es12.js +13 -103
- package/dist/index.es12.js.map +1 -1
- package/dist/index.es120.js +21 -48
- package/dist/index.es120.js.map +1 -1
- package/dist/index.es121.js +77 -8
- package/dist/index.es121.js.map +1 -1
- package/dist/index.es122.js +127 -43
- package/dist/index.es122.js.map +1 -1
- package/dist/index.es123.js +41 -91
- package/dist/index.es123.js.map +1 -1
- package/dist/index.es124.js +9 -52
- package/dist/index.es124.js.map +1 -1
- package/dist/index.es125.js +44 -15
- package/dist/index.es125.js.map +1 -1
- package/dist/index.es126.js +97 -13
- package/dist/index.es126.js.map +1 -1
- package/dist/index.es127.js +52 -88
- package/dist/index.es127.js.map +1 -1
- package/dist/index.es128.js +15 -2
- package/dist/index.es128.js.map +1 -1
- package/dist/index.es129.js +87 -54
- package/dist/index.es129.js.map +1 -1
- package/dist/index.es13.js +126 -32
- package/dist/index.es13.js.map +1 -1
- package/dist/index.es130.js +2 -100
- package/dist/index.es130.js.map +1 -1
- package/dist/index.es131.js +163 -190
- package/dist/index.es131.js.map +1 -1
- package/dist/index.es132.js +2 -110
- package/dist/index.es132.js.map +1 -1
- package/dist/index.es133.js +53 -32
- package/dist/index.es133.js.map +1 -1
- package/dist/index.es134.js +99 -9
- package/dist/index.es134.js.map +1 -1
- package/dist/index.es135.js +190 -10
- package/dist/index.es135.js.map +1 -1
- package/dist/index.es136.js +108 -10
- package/dist/index.es136.js.map +1 -1
- package/dist/index.es137.js +30 -86
- package/dist/index.es137.js.map +1 -1
- package/dist/index.es138.js +10 -275
- package/dist/index.es138.js.map +1 -1
- package/dist/index.es139.js +11 -2
- package/dist/index.es139.js.map +1 -1
- package/dist/index.es140.js +11 -163
- package/dist/index.es140.js.map +1 -1
- package/dist/index.es141.js +87 -47
- package/dist/index.es141.js.map +1 -1
- package/dist/index.es142.js +266 -31
- package/dist/index.es142.js.map +1 -1
- package/dist/index.es143.js +2 -35
- package/dist/index.es143.js.map +1 -1
- package/dist/index.es144.js +155 -31
- package/dist/index.es144.js.map +1 -1
- package/dist/index.es145.js +48 -21
- package/dist/index.es145.js.map +1 -1
- package/dist/index.es146.js +33 -584
- package/dist/index.es146.js.map +1 -1
- package/dist/index.es147.js +34 -124
- package/dist/index.es147.js.map +1 -1
- package/dist/index.es148.js +31 -155
- package/dist/index.es148.js.map +1 -1
- package/dist/index.es149.js +24 -2
- package/dist/index.es149.js.map +1 -1
- package/dist/index.es15.js +15 -15
- package/dist/index.es150.js +591 -2
- package/dist/index.es150.js.map +1 -1
- package/dist/index.es151.js +125 -2
- package/dist/index.es151.js.map +1 -1
- package/dist/index.es152.js +3 -21
- package/dist/index.es152.js.map +1 -1
- package/dist/index.es153.js +2 -2
- package/dist/index.es154.js +2 -25
- package/dist/index.es154.js.map +1 -1
- package/dist/index.es155.js +22 -8
- package/dist/index.es155.js.map +1 -1
- package/dist/index.es156.js +2 -5
- package/dist/index.es156.js.map +1 -1
- package/dist/index.es157.js +24 -12
- package/dist/index.es157.js.map +1 -1
- package/dist/index.es158.js +5 -6
- package/dist/index.es158.js.map +1 -1
- package/dist/index.es159.js +12 -63
- package/dist/index.es159.js.map +1 -1
- package/dist/index.es160.js +5 -21
- package/dist/index.es160.js.map +1 -1
- package/dist/index.es161.js +8 -6
- package/dist/index.es161.js.map +1 -1
- package/dist/index.es162.js +22 -346
- package/dist/index.es162.js.map +1 -1
- package/dist/index.es163.js +12 -25
- package/dist/index.es163.js.map +1 -1
- package/dist/index.es164.js +53 -11
- package/dist/index.es164.js.map +1 -1
- package/dist/index.es165.js +59 -49
- package/dist/index.es165.js.map +1 -1
- package/dist/index.es166.js +22 -7
- package/dist/index.es166.js.map +1 -1
- package/dist/index.es167.js +5 -102
- package/dist/index.es167.js.map +1 -1
- package/dist/index.es168.js +339 -109
- package/dist/index.es168.js.map +1 -1
- package/dist/index.es169.js +7 -136
- package/dist/index.es169.js.map +1 -1
- package/dist/index.es17.js +2 -2
- package/dist/index.es170.js +97 -109
- package/dist/index.es170.js.map +1 -1
- package/dist/index.es171.js +119 -6
- package/dist/index.es171.js.map +1 -1
- package/dist/index.es172.js +136 -4
- package/dist/index.es172.js.map +1 -1
- package/dist/index.es173.js +115 -2
- package/dist/index.es173.js.map +1 -1
- package/dist/index.es174.js +6 -3737
- package/dist/index.es174.js.map +1 -1
- package/dist/index.es175.js +2 -342
- package/dist/index.es175.js.map +1 -1
- package/dist/index.es176.js +138 -105
- package/dist/index.es176.js.map +1 -1
- package/dist/index.es177.js +2 -133
- package/dist/index.es177.js.map +1 -1
- package/dist/index.es178.js +3734 -12
- package/dist/index.es178.js.map +1 -1
- package/dist/index.es179.js +326 -136
- package/dist/index.es179.js.map +1 -1
- package/dist/index.es180.js +107 -13
- package/dist/index.es180.js.map +1 -1
- package/dist/index.es181.js +131 -6
- package/dist/index.es181.js.map +1 -1
- package/dist/index.es182.js +13 -19
- package/dist/index.es182.js.map +1 -1
- package/dist/index.es183.js +139 -77
- package/dist/index.es183.js.map +1 -1
- package/dist/index.es184.js +13 -241
- package/dist/index.es184.js.map +1 -1
- package/dist/index.es185.js +8 -24
- package/dist/index.es185.js.map +1 -1
- package/dist/index.es186.js +21 -6
- package/dist/index.es186.js.map +1 -1
- package/dist/index.es187.js +90 -4
- package/dist/index.es187.js.map +1 -1
- package/dist/index.es188.js +240 -15
- package/dist/index.es188.js.map +1 -1
- package/dist/index.es189.js +24 -8
- package/dist/index.es189.js.map +1 -1
- package/dist/index.es190.js +6 -142
- package/dist/index.es190.js.map +1 -1
- package/dist/index.es191.js +4 -2
- package/dist/index.es191.js.map +1 -1
- package/dist/index.es192.js +18 -32
- package/dist/index.es192.js.map +1 -1
- package/dist/index.es193.js +8 -6
- package/dist/index.es193.js.map +1 -1
- package/dist/index.es194.js +31 -105
- package/dist/index.es194.js.map +1 -1
- package/dist/index.es195.js +6 -13
- package/dist/index.es195.js.map +1 -1
- package/dist/index.es196.js +105 -17
- package/dist/index.es196.js.map +1 -1
- package/dist/index.es197.js +11 -29
- package/dist/index.es197.js.map +1 -1
- package/dist/index.es198.js +17 -3
- package/dist/index.es198.js.map +1 -1
- package/dist/index.es199.js +30 -4
- package/dist/index.es199.js.map +1 -1
- package/dist/index.es2.js +24 -15
- package/dist/index.es2.js.map +1 -1
- package/dist/index.es20.js +35 -66
- package/dist/index.es20.js.map +1 -1
- package/dist/index.es200.js +4 -5
- package/dist/index.es200.js.map +1 -1
- package/dist/index.es201.js +4 -36
- package/dist/index.es201.js.map +1 -1
- package/dist/index.es202.js +5 -8
- package/dist/index.es202.js.map +1 -1
- package/dist/index.es203.js +36 -5
- package/dist/index.es203.js.map +1 -1
- package/dist/index.es204.js +5 -4
- package/dist/index.es204.js.map +1 -1
- package/dist/index.es205.js +5 -41
- package/dist/index.es205.js.map +1 -1
- package/dist/index.es206.js +4 -10
- package/dist/index.es206.js.map +1 -1
- package/dist/index.es207.js +39 -239
- package/dist/index.es207.js.map +1 -1
- package/dist/index.es208.js +10 -48
- package/dist/index.es208.js.map +1 -1
- package/dist/index.es209.js +239 -32
- package/dist/index.es209.js.map +1 -1
- package/dist/index.es21.js +25 -34
- package/dist/index.es21.js.map +1 -1
- package/dist/index.es210.js +49 -11
- package/dist/index.es210.js.map +1 -1
- package/dist/index.es211.js +33 -6
- package/dist/index.es211.js.map +1 -1
- package/dist/index.es212.js +12 -6
- package/dist/index.es212.js.map +1 -1
- package/dist/index.es213.js +7 -64
- package/dist/index.es213.js.map +1 -1
- package/dist/index.es214.js +6 -40
- package/dist/index.es214.js.map +1 -1
- package/dist/index.es215.js +63 -30
- package/dist/index.es215.js.map +1 -1
- package/dist/index.es216.js +35 -56
- package/dist/index.es216.js.map +1 -1
- package/dist/index.es217.js +32 -15
- package/dist/index.es217.js.map +1 -1
- package/dist/index.es218.js +60 -21
- package/dist/index.es218.js.map +1 -1
- package/dist/index.es219.js +15 -5
- package/dist/index.es219.js.map +1 -1
- package/dist/index.es22.js +146 -27
- package/dist/index.es22.js.map +1 -1
- package/dist/index.es220.js +21 -15
- package/dist/index.es220.js.map +1 -1
- package/dist/index.es221.js +4 -32
- package/dist/index.es221.js.map +1 -1
- package/dist/index.es222.js +16 -4
- package/dist/index.es222.js.map +1 -1
- package/dist/index.es223.js +32 -4
- package/dist/index.es223.js.map +1 -1
- package/dist/index.es224.js +5 -5
- package/dist/index.es224.js.map +1 -1
- package/dist/index.es225.js +4 -7
- package/dist/index.es225.js.map +1 -1
- package/dist/index.es226.js +4 -91
- package/dist/index.es226.js.map +1 -1
- package/dist/index.es227.js +7 -17
- package/dist/index.es227.js.map +1 -1
- package/dist/index.es228.js +90 -760
- package/dist/index.es228.js.map +1 -1
- package/dist/index.es229.js +18 -66
- package/dist/index.es229.js.map +1 -1
- package/dist/index.es23.js +16 -146
- package/dist/index.es23.js.map +1 -1
- package/dist/index.es230.js +749 -161
- package/dist/index.es230.js.map +1 -1
- package/dist/index.es231.js +66 -38
- package/dist/index.es231.js.map +1 -1
- package/dist/index.es232.js +172 -135
- package/dist/index.es232.js.map +1 -1
- package/dist/index.es233.js +136 -92
- package/dist/index.es233.js.map +1 -1
- package/dist/index.es234.js +92 -32
- package/dist/index.es234.js.map +1 -1
- package/dist/index.es235.js +32 -284
- package/dist/index.es235.js.map +1 -1
- package/dist/index.es236.js +284 -25
- package/dist/index.es236.js.map +1 -1
- package/dist/index.es237.js +22 -20
- package/dist/index.es237.js.map +1 -1
- package/dist/index.es238.js +22 -13
- package/dist/index.es238.js.map +1 -1
- package/dist/index.es239.js +12 -12
- package/dist/index.es239.js.map +1 -1
- package/dist/index.es24.js +58 -295
- package/dist/index.es24.js.map +1 -1
- package/dist/index.es240.js +13 -24
- package/dist/index.es240.js.map +1 -1
- package/dist/index.es241.js +22 -42
- package/dist/index.es241.js.map +1 -1
- package/dist/index.es242.js +45 -11
- package/dist/index.es242.js.map +1 -1
- package/dist/index.es243.js +10 -10
- package/dist/index.es243.js.map +1 -1
- package/dist/index.es244.js +10 -10
- package/dist/index.es244.js.map +1 -1
- package/dist/index.es245.js +11 -14
- package/dist/index.es245.js.map +1 -1
- package/dist/index.es246.js +14 -11
- package/dist/index.es246.js.map +1 -1
- package/dist/index.es247.js +11 -11
- package/dist/index.es247.js.map +1 -1
- package/dist/index.es248.js +10 -10
- package/dist/index.es248.js.map +1 -1
- package/dist/index.es249.js +11 -15
- package/dist/index.es249.js.map +1 -1
- package/dist/index.es25.js +298 -114
- package/dist/index.es25.js.map +1 -1
- package/dist/index.es250.js +15 -11
- package/dist/index.es250.js.map +1 -1
- package/dist/index.es251.js +10 -10
- package/dist/index.es251.js.map +1 -1
- package/dist/index.es252.js +11 -11
- package/dist/index.es252.js.map +1 -1
- package/dist/index.es253.js +10 -10
- package/dist/index.es253.js.map +1 -1
- package/dist/index.es254.js +10 -10
- package/dist/index.es254.js.map +1 -1
- package/dist/index.es255.js +10 -10
- package/dist/index.es255.js.map +1 -1
- package/dist/index.es256.js +10 -10
- package/dist/index.es256.js.map +1 -1
- package/dist/index.es257.js +10 -10
- package/dist/index.es257.js.map +1 -1
- package/dist/index.es258.js +11 -56
- package/dist/index.es258.js.map +1 -1
- package/dist/index.es259.js +53 -46
- package/dist/index.es259.js.map +1 -1
- package/dist/index.es26.js +121 -5
- package/dist/index.es26.js.map +1 -1
- package/dist/index.es260.js +42 -112
- package/dist/index.es260.js.map +1 -1
- package/dist/index.es261.js +87 -352
- package/dist/index.es261.js.map +1 -1
- package/dist/index.es262.js +381 -15
- package/dist/index.es262.js.map +1 -1
- package/dist/index.es263.js +17 -10
- package/dist/index.es263.js.map +1 -1
- package/dist/index.es264.js +10 -30
- package/dist/index.es264.js.map +1 -1
- package/dist/index.es265.js +17 -17
- package/dist/index.es265.js.map +1 -1
- package/dist/index.es266.js +25 -56
- package/dist/index.es266.js.map +1 -1
- package/dist/index.es267.js +59 -14
- package/dist/index.es267.js.map +1 -1
- package/dist/index.es268.js +14 -74
- package/dist/index.es268.js.map +1 -1
- package/dist/index.es269.js +77 -11
- package/dist/index.es269.js.map +1 -1
- package/dist/index.es270.js +10 -10
- package/dist/index.es270.js.map +1 -1
- package/dist/index.es271.js +11 -15
- package/dist/index.es271.js.map +1 -1
- package/dist/index.es272.js +14 -51
- package/dist/index.es272.js.map +1 -1
- package/dist/index.es273.js +44 -158
- package/dist/index.es273.js.map +1 -1
- package/dist/index.es274.js +167 -2
- package/dist/index.es274.js.map +1 -1
- package/dist/index.es275.js +37 -10
- package/dist/index.es275.js.map +1 -1
- package/dist/index.es276.js +2 -20
- package/dist/index.es276.js.map +1 -1
- package/dist/index.es277.js +10 -38
- package/dist/index.es277.js.map +1 -1
- package/dist/index.es278.js +23 -0
- package/dist/index.es278.js.map +1 -0
- package/dist/index.es279.js +42 -0
- package/dist/index.es279.js.map +1 -0
- package/dist/index.es28.js +7 -7
- package/dist/index.es29.js +1 -1
- package/dist/index.es32.js +4 -4
- package/dist/index.es33.js +117 -13
- package/dist/index.es33.js.map +1 -1
- package/dist/index.es34.js +65 -112
- package/dist/index.es34.js.map +1 -1
- package/dist/index.es35.js +18 -71
- package/dist/index.es35.js.map +1 -1
- package/dist/index.es36.js +260 -17
- package/dist/index.es36.js.map +1 -1
- package/dist/index.es37.js +31 -249
- package/dist/index.es37.js.map +1 -1
- package/dist/index.es38.js +199 -27
- package/dist/index.es38.js.map +1 -1
- package/dist/index.es39.js +50 -198
- package/dist/index.es39.js.map +1 -1
- package/dist/index.es40.js +120 -45
- package/dist/index.es40.js.map +1 -1
- package/dist/index.es41.js +14 -132
- package/dist/index.es41.js.map +1 -1
- package/dist/index.es42.js +225 -19
- package/dist/index.es42.js.map +1 -1
- package/dist/index.es43.js +8 -229
- package/dist/index.es43.js.map +1 -1
- package/dist/index.es44.js +1190 -7
- package/dist/index.es44.js.map +1 -1
- package/dist/index.es45.js +6 -1191
- package/dist/index.es45.js.map +1 -1
- package/dist/index.es46.js +146 -6
- package/dist/index.es46.js.map +1 -1
- package/dist/index.es47.js +15 -146
- package/dist/index.es47.js.map +1 -1
- package/dist/index.es49.js +5 -93
- package/dist/index.es49.js.map +1 -1
- package/dist/index.es50.js +8 -4
- package/dist/index.es50.js.map +1 -1
- package/dist/index.es51.js +91 -33
- package/dist/index.es51.js.map +1 -1
- package/dist/index.es52.js +3 -71
- package/dist/index.es52.js.map +1 -1
- package/dist/index.es53.js +34 -36
- package/dist/index.es53.js.map +1 -1
- package/dist/index.es54.js +61 -295
- package/dist/index.es54.js.map +1 -1
- package/dist/index.es55.js +38 -9
- package/dist/index.es55.js.map +1 -1
- package/dist/index.es56.js +296 -81
- package/dist/index.es56.js.map +1 -1
- package/dist/index.es57.js +9 -8
- package/dist/index.es57.js.map +1 -1
- package/dist/index.es58.js +89 -13
- package/dist/index.es58.js.map +1 -1
- package/dist/index.es59.js +6 -141
- package/dist/index.es59.js.map +1 -1
- package/dist/index.es60.js +12 -297
- package/dist/index.es60.js.map +1 -1
- package/dist/index.es61.js +137 -60
- package/dist/index.es61.js.map +1 -1
- package/dist/index.es62.js +247 -160
- package/dist/index.es62.js.map +1 -1
- package/dist/index.es63.js +63 -31
- package/dist/index.es63.js.map +1 -1
- package/dist/index.es64.js +212 -8
- package/dist/index.es64.js.map +1 -1
- package/dist/index.es65.js +32 -10
- package/dist/index.es65.js.map +1 -1
- package/dist/index.es66.js +8 -186
- package/dist/index.es66.js.map +1 -1
- package/dist/index.es67.js +11 -23
- package/dist/index.es67.js.map +1 -1
- package/dist/index.es68.js +183 -1396
- package/dist/index.es68.js.map +1 -1
- package/dist/index.es69.js +24 -9
- package/dist/index.es69.js.map +1 -1
- package/dist/index.es70.js +1400 -8
- package/dist/index.es70.js.map +1 -1
- package/dist/index.es71.js +9 -6
- package/dist/index.es71.js.map +1 -1
- package/dist/index.es72.js +8 -163
- package/dist/index.es72.js.map +1 -1
- package/dist/index.es73.js +6 -672
- package/dist/index.es73.js.map +1 -1
- package/dist/index.es74.js +161 -10
- package/dist/index.es74.js.map +1 -1
- package/dist/index.es75.js +671 -39
- package/dist/index.es75.js.map +1 -1
- package/dist/index.es76.js +10 -32
- package/dist/index.es76.js.map +1 -1
- package/dist/index.es77.js +31 -223
- package/dist/index.es77.js.map +1 -1
- package/dist/index.es78.js +33 -29
- package/dist/index.es78.js.map +1 -1
- package/dist/index.es79.js +193 -36
- package/dist/index.es79.js.map +1 -1
- package/dist/index.es80.js +26 -72
- package/dist/index.es80.js.map +1 -1
- package/dist/index.es81.js +70 -47
- package/dist/index.es81.js.map +1 -1
- package/dist/index.es82.js +72 -26
- package/dist/index.es82.js.map +1 -1
- package/dist/index.es83.js +37 -28
- package/dist/index.es83.js.map +1 -1
- package/dist/index.es84.js +28 -55
- package/dist/index.es84.js.map +1 -1
- package/dist/index.es85.js +43 -13
- package/dist/index.es85.js.map +1 -1
- package/dist/index.es86.js +32 -132
- package/dist/index.es86.js.map +1 -1
- package/dist/index.es87.js +5 -21
- package/dist/index.es87.js.map +1 -1
- package/dist/index.es88.js +61 -170
- package/dist/index.es88.js.map +1 -1
- package/dist/index.es89.js +31 -235
- package/dist/index.es89.js.map +1 -1
- package/dist/index.es90.js +50 -348
- package/dist/index.es90.js.map +1 -1
- package/dist/index.es91.js +13 -137
- package/dist/index.es91.js.map +1 -1
- package/dist/index.es92.js +132 -65
- package/dist/index.es92.js.map +1 -1
- package/dist/index.es93.js +21 -37
- package/dist/index.es93.js.map +1 -1
- package/dist/index.es94.js +179 -34
- package/dist/index.es94.js.map +1 -1
- package/dist/index.es95.js +230 -155
- package/dist/index.es95.js.map +1 -1
- package/dist/index.es96.js +341 -189
- package/dist/index.es96.js.map +1 -1
- package/dist/index.es97.js +136 -13
- package/dist/index.es97.js.map +1 -1
- package/dist/index.es98.js +68 -28
- package/dist/index.es98.js.map +1 -1
- package/dist/index.es99.js +33 -30
- package/dist/index.es99.js.map +1 -1
- package/dist/langgraph-ui-components.css +107 -0
- package/dist/styles.css +1 -1
- package/package.json +8 -11
- package/dist/index.es48.js +0 -11
- package/dist/index.es48.js.map +0 -1
package/dist/index.es96.js
CHANGED
|
@@ -1,206 +1,358 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
else if (isRunnableInterface(data)) try {
|
|
11
|
-
let dataStr = data.getName();
|
|
12
|
-
dataStr = dataStr.startsWith("Runnable") ? dataStr.slice(8) : dataStr;
|
|
13
|
-
return dataStr;
|
|
14
|
-
} catch {
|
|
15
|
-
return data.getName();
|
|
16
|
-
}
|
|
17
|
-
else return data.name ?? "UnknownSchema";
|
|
1
|
+
import { AIMessageChunk } from "./index.es38.js";
|
|
2
|
+
import { BaseTracer } from "./index.es118.js";
|
|
3
|
+
import { IterableReadableStream } from "./index.es94.js";
|
|
4
|
+
import { GenerationChunk } from "./index.es119.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";
|
|
18
10
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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;
|
|
25
69
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
data: {
|
|
30
|
-
...toJsonSchema(node.data.schema),
|
|
31
|
-
title: node.data.name
|
|
70
|
+
function _formatOutputChunk(eventType, data) {
|
|
71
|
+
if (eventType === "llm" && typeof data === "string") return new GenerationChunk({ text: data });
|
|
72
|
+
return data;
|
|
32
73
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
nodes: Object.values(this.nodes).map((node) => ({
|
|
49
|
-
id: stableNodeIds[node.id],
|
|
50
|
-
...nodeDataJson(node)
|
|
51
|
-
})),
|
|
52
|
-
edges: this.edges.map((edge) => {
|
|
53
|
-
const item = {
|
|
54
|
-
source: stableNodeIds[edge.source],
|
|
55
|
-
target: stableNodeIds[edge.target]
|
|
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: {}
|
|
56
89
|
};
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
+
}
|
|
105
|
+
} else {
|
|
106
|
+
yield firstChunk.value;
|
|
107
|
+
for await (const chunk of outputStream) yield chunk;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
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
|
|
61
130
|
};
|
|
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);
|
|
62
141
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
|
71
216
|
};
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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
|
+
}
|
|
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
|
|
87
248
|
};
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
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 ?? {}
|
|
107
270
|
};
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
data:
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
const
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
const nodeLabels = Object.fromEntries(Object.values(this.nodes).map((node) => [node.id, node.name]));
|
|
146
|
-
const nodeLabelCounts = /* @__PURE__ */ new Map();
|
|
147
|
-
Object.values(nodeLabels).forEach((label) => {
|
|
148
|
-
nodeLabelCounts.set(label, (nodeLabelCounts.get(label) || 0) + 1);
|
|
149
|
-
});
|
|
150
|
-
const getNodeId = (nodeId) => {
|
|
151
|
-
const label = nodeLabels[nodeId];
|
|
152
|
-
if (validate(nodeId) && nodeLabelCounts.get(label) === 1) return label;
|
|
153
|
-
else return nodeId;
|
|
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 }
|
|
154
308
|
};
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
}))
|
|
165
|
-
});
|
|
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);
|
|
166
318
|
}
|
|
167
|
-
|
|
168
|
-
const
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
wrapLabelNWords
|
|
183
|
-
});
|
|
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);
|
|
184
334
|
}
|
|
185
|
-
async
|
|
186
|
-
const
|
|
187
|
-
|
|
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
|
+
});
|
|
188
352
|
}
|
|
189
353
|
};
|
|
190
|
-
function _firstNode(graph, exclude = []) {
|
|
191
|
-
const targets = new Set(graph.edges.filter((edge) => !exclude.includes(edge.source)).map((edge) => edge.target));
|
|
192
|
-
const found = [];
|
|
193
|
-
for (const node of Object.values(graph.nodes)) if (!exclude.includes(node.id) && !targets.has(node.id)) found.push(node);
|
|
194
|
-
return found.length === 1 ? found[0] : void 0;
|
|
195
|
-
}
|
|
196
|
-
function _lastNode(graph, exclude = []) {
|
|
197
|
-
const sources = new Set(graph.edges.filter((edge) => !exclude.includes(edge.target)).map((edge) => edge.source));
|
|
198
|
-
const found = [];
|
|
199
|
-
for (const node of Object.values(graph.nodes)) if (!exclude.includes(node.id) && !sources.has(node.id)) found.push(node);
|
|
200
|
-
return found.length === 1 ? found[0] : void 0;
|
|
201
|
-
}
|
|
202
354
|
export {
|
|
203
|
-
|
|
204
|
-
|
|
355
|
+
EventStreamCallbackHandler,
|
|
356
|
+
isStreamEventsHandler
|
|
205
357
|
};
|
|
206
358
|
//# sourceMappingURL=index.es96.js.map
|
package/dist/index.es96.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es96.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/runnables/graph.js"],"sourcesContent":["import { __export } from \"../_virtual/rolldown_runtime.js\";\nimport { isRunnableInterface } from \"./utils.js\";\nimport { drawMermaid, drawMermaidImage } from \"./graph_mermaid.js\";\nimport { toJsonSchema } from \"../utils/json_schema.js\";\nimport { v4, validate } from \"uuid\";\n\n//#region src/runnables/graph.ts\nvar graph_exports = {};\n__export(graph_exports, { Graph: () => Graph });\nfunction nodeDataStr(id, data) {\n\tif (id !== void 0 && !validate(id)) return id;\n\telse if (isRunnableInterface(data)) try {\n\t\tlet dataStr = data.getName();\n\t\tdataStr = dataStr.startsWith(\"Runnable\") ? dataStr.slice(8) : dataStr;\n\t\treturn dataStr;\n\t} catch {\n\t\treturn data.getName();\n\t}\n\telse return data.name ?? \"UnknownSchema\";\n}\nfunction nodeDataJson(node) {\n\tif (isRunnableInterface(node.data)) return {\n\t\ttype: \"runnable\",\n\t\tdata: {\n\t\t\tid: node.data.lc_id,\n\t\t\tname: node.data.getName()\n\t\t}\n\t};\n\telse return {\n\t\ttype: \"schema\",\n\t\tdata: {\n\t\t\t...toJsonSchema(node.data.schema),\n\t\t\ttitle: node.data.name\n\t\t}\n\t};\n}\nvar Graph = class Graph {\n\tnodes = {};\n\tedges = [];\n\tconstructor(params) {\n\t\tthis.nodes = params?.nodes ?? this.nodes;\n\t\tthis.edges = params?.edges ?? this.edges;\n\t}\n\ttoJSON() {\n\t\tconst stableNodeIds = {};\n\t\tObject.values(this.nodes).forEach((node, i) => {\n\t\t\tstableNodeIds[node.id] = validate(node.id) ? i : node.id;\n\t\t});\n\t\treturn {\n\t\t\tnodes: Object.values(this.nodes).map((node) => ({\n\t\t\t\tid: stableNodeIds[node.id],\n\t\t\t\t...nodeDataJson(node)\n\t\t\t})),\n\t\t\tedges: this.edges.map((edge) => {\n\t\t\t\tconst item = {\n\t\t\t\t\tsource: stableNodeIds[edge.source],\n\t\t\t\t\ttarget: stableNodeIds[edge.target]\n\t\t\t\t};\n\t\t\t\tif (typeof edge.data !== \"undefined\") item.data = edge.data;\n\t\t\t\tif (typeof edge.conditional !== \"undefined\") item.conditional = edge.conditional;\n\t\t\t\treturn item;\n\t\t\t})\n\t\t};\n\t}\n\taddNode(data, id, metadata) {\n\t\tif (id !== void 0 && this.nodes[id] !== void 0) throw new Error(`Node with id ${id} already exists`);\n\t\tconst nodeId = id ?? v4();\n\t\tconst node = {\n\t\t\tid: nodeId,\n\t\t\tdata,\n\t\t\tname: nodeDataStr(id, data),\n\t\t\tmetadata\n\t\t};\n\t\tthis.nodes[nodeId] = node;\n\t\treturn node;\n\t}\n\tremoveNode(node) {\n\t\tdelete this.nodes[node.id];\n\t\tthis.edges = this.edges.filter((edge) => edge.source !== node.id && edge.target !== node.id);\n\t}\n\taddEdge(source, target, data, conditional) {\n\t\tif (this.nodes[source.id] === void 0) throw new Error(`Source node ${source.id} not in graph`);\n\t\tif (this.nodes[target.id] === void 0) throw new Error(`Target node ${target.id} not in graph`);\n\t\tconst edge = {\n\t\t\tsource: source.id,\n\t\t\ttarget: target.id,\n\t\t\tdata,\n\t\t\tconditional\n\t\t};\n\t\tthis.edges.push(edge);\n\t\treturn edge;\n\t}\n\tfirstNode() {\n\t\treturn _firstNode(this);\n\t}\n\tlastNode() {\n\t\treturn _lastNode(this);\n\t}\n\t/**\n\t* Add all nodes and edges from another graph.\n\t* Note this doesn't check for duplicates, nor does it connect the graphs.\n\t*/\n\textend(graph, prefix = \"\") {\n\t\tlet finalPrefix = prefix;\n\t\tconst nodeIds = Object.values(graph.nodes).map((node) => node.id);\n\t\tif (nodeIds.every(validate)) finalPrefix = \"\";\n\t\tconst prefixed = (id) => {\n\t\t\treturn finalPrefix ? `${finalPrefix}:${id}` : id;\n\t\t};\n\t\tObject.entries(graph.nodes).forEach(([key, value]) => {\n\t\t\tthis.nodes[prefixed(key)] = {\n\t\t\t\t...value,\n\t\t\t\tid: prefixed(key)\n\t\t\t};\n\t\t});\n\t\tconst newEdges = graph.edges.map((edge) => {\n\t\t\treturn {\n\t\t\t\t...edge,\n\t\t\t\tsource: prefixed(edge.source),\n\t\t\t\ttarget: prefixed(edge.target)\n\t\t\t};\n\t\t});\n\t\tthis.edges = [...this.edges, ...newEdges];\n\t\tconst first = graph.firstNode();\n\t\tconst last = graph.lastNode();\n\t\treturn [first ? {\n\t\t\tid: prefixed(first.id),\n\t\t\tdata: first.data\n\t\t} : void 0, last ? {\n\t\t\tid: prefixed(last.id),\n\t\t\tdata: last.data\n\t\t} : void 0];\n\t}\n\ttrimFirstNode() {\n\t\tconst firstNode = this.firstNode();\n\t\tif (firstNode && _firstNode(this, [firstNode.id])) this.removeNode(firstNode);\n\t}\n\ttrimLastNode() {\n\t\tconst lastNode = this.lastNode();\n\t\tif (lastNode && _lastNode(this, [lastNode.id])) this.removeNode(lastNode);\n\t}\n\t/**\n\t* Return a new graph with all nodes re-identified,\n\t* using their unique, readable names where possible.\n\t*/\n\treid() {\n\t\tconst nodeLabels = Object.fromEntries(Object.values(this.nodes).map((node) => [node.id, node.name]));\n\t\tconst nodeLabelCounts = /* @__PURE__ */ new Map();\n\t\tObject.values(nodeLabels).forEach((label) => {\n\t\t\tnodeLabelCounts.set(label, (nodeLabelCounts.get(label) || 0) + 1);\n\t\t});\n\t\tconst getNodeId = (nodeId) => {\n\t\t\tconst label = nodeLabels[nodeId];\n\t\t\tif (validate(nodeId) && nodeLabelCounts.get(label) === 1) return label;\n\t\t\telse return nodeId;\n\t\t};\n\t\treturn new Graph({\n\t\t\tnodes: Object.fromEntries(Object.entries(this.nodes).map(([id, node]) => [getNodeId(id), {\n\t\t\t\t...node,\n\t\t\t\tid: getNodeId(id)\n\t\t\t}])),\n\t\t\tedges: this.edges.map((edge) => ({\n\t\t\t\t...edge,\n\t\t\t\tsource: getNodeId(edge.source),\n\t\t\t\ttarget: getNodeId(edge.target)\n\t\t\t}))\n\t\t});\n\t}\n\tdrawMermaid(params) {\n\t\tconst { withStyles, curveStyle, nodeColors = {\n\t\t\tdefault: \"fill:#f2f0ff,line-height:1.2\",\n\t\t\tfirst: \"fill-opacity:0\",\n\t\t\tlast: \"fill:#bfb6fc\"\n\t\t}, wrapLabelNWords } = params ?? {};\n\t\tconst graph = this.reid();\n\t\tconst firstNode = graph.firstNode();\n\t\tconst lastNode = graph.lastNode();\n\t\treturn drawMermaid(graph.nodes, graph.edges, {\n\t\t\tfirstNode: firstNode?.id,\n\t\t\tlastNode: lastNode?.id,\n\t\t\twithStyles,\n\t\t\tcurveStyle,\n\t\t\tnodeColors,\n\t\t\twrapLabelNWords\n\t\t});\n\t}\n\tasync drawMermaidPng(params) {\n\t\tconst mermaidSyntax = this.drawMermaid(params);\n\t\treturn drawMermaidImage(mermaidSyntax, { backgroundColor: params?.backgroundColor });\n\t}\n};\n/**\n* Find the single node that is not a target of any edge.\n* Exclude nodes/sources with ids in the exclude list.\n* If there is no such node, or there are multiple, return undefined.\n* When drawing the graph, this node would be the origin.\n*/\nfunction _firstNode(graph, exclude = []) {\n\tconst targets = new Set(graph.edges.filter((edge) => !exclude.includes(edge.source)).map((edge) => edge.target));\n\tconst found = [];\n\tfor (const node of Object.values(graph.nodes)) if (!exclude.includes(node.id) && !targets.has(node.id)) found.push(node);\n\treturn found.length === 1 ? found[0] : void 0;\n}\n/**\n* Find the single node that is not a source of any edge.\n* Exclude nodes/targets with ids in the exclude list.\n* If there is no such node, or there are multiple, return undefined.\n* When drawing the graph, this node would be the destination.\n*/\nfunction _lastNode(graph, exclude = []) {\n\tconst sources = new Set(graph.edges.filter((edge) => !exclude.includes(edge.target)).map((edge) => edge.source));\n\tconst found = [];\n\tfor (const node of Object.values(graph.nodes)) if (!exclude.includes(node.id) && !sources.has(node.id)) found.push(node);\n\treturn found.length === 1 ? found[0] : void 0;\n}\n\n//#endregion\nexport { Graph, graph_exports };\n//# sourceMappingURL=graph.js.map"],"names":["Graph"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"index.es96.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":";;;;AAMA,SAAS,WAAW,EAAE,MAAM,cAAc;AACzC,MAAI,SAAS,OAAQ,QAAO;AAC5B,MAAI,YAAY,SAAS,OAAQ,QAAO,WAAW;AAAA,WAC1C,YAAY,OAAO,UAAU,MAAM,QAAQ,YAAY,EAAE,EAAG,QAAO,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;AAClH,SAAO;AACR;AACK,MAAC,wBAAwB,CAAC,YAAY,QAAQ,SAAS;AAOzD,IAAC,6BAA6B,cAAc,WAAW;AAAA,EACzD,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAA6B,oBAAI,IAAG;AAAA,EACpC,iBAAiC,oBAAI,IAAG;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA,uBAAuB;AAAA,EACvB,OAAO;AAAA,EACP,sBAAsB;AAAA,EACtB,YAAY,QAAQ;AACnB,UAAM;AAAA,MACL,eAAe;AAAA,MACf,GAAG;AAAA,IACN,CAAG;AACD,SAAK,YAAY,QAAQ,aAAa;AACtC,SAAK,eAAe,QAAQ;AAC5B,SAAK,eAAe,QAAQ;AAC5B,SAAK,cAAc,QAAQ;AAC3B,SAAK,eAAe,QAAQ;AAC5B,SAAK,eAAe,QAAQ;AAC5B,SAAK,cAAc,QAAQ;AAC3B,SAAK,kBAAkB,IAAI,gBAAgB,EAAE,OAAO,MAAM;AACzD,WAAK,uBAAuB;AAAA,IAC7B,GAAG;AACH,SAAK,SAAS,KAAK,gBAAgB,SAAS,UAAS;AACrD,SAAK,gBAAgB,uBAAuB,mBAAmB,KAAK,gBAAgB,QAAQ;AAAA,EAC7F;AAAA,EACA,CAAC,OAAO,aAAa,IAAI;AACxB,WAAO,KAAK;AAAA,EACb;AAAA,EACA,MAAM,WAAW,MAAM;AAAA,EAAC;AAAA,EACxB,YAAY,KAAK;AAChB,UAAM,UAAU,IAAI,QAAQ,CAAA;AAC5B,QAAI,UAAU,KAAK,iBAAiB,UAAU,KAAK,gBAAgB,UAAU,KAAK,iBAAiB;AACnG,QAAI,KAAK,iBAAiB,OAAQ,WAAU,WAAW,KAAK,aAAa,SAAS,IAAI,IAAI;AAC1F,QAAI,KAAK,iBAAiB,OAAQ,WAAU,WAAW,KAAK,aAAa,SAAS,IAAI,OAAO;AAC7F,QAAI,KAAK,gBAAgB,OAAQ,WAAU,WAAW,QAAQ,KAAK,CAAC,QAAQ,KAAK,aAAa,SAAS,GAAG,CAAC,MAAM;AACjH,QAAI,KAAK,iBAAiB,OAAQ,WAAU,WAAW,CAAC,KAAK,aAAa,SAAS,IAAI,IAAI;AAC3F,QAAI,KAAK,iBAAiB,OAAQ,WAAU,WAAW,CAAC,KAAK,aAAa,SAAS,IAAI,OAAO;AAC9F,QAAI,KAAK,gBAAgB,OAAQ,WAAU,WAAW,QAAQ,MAAM,CAAC,QAAQ,CAAC,KAAK,aAAa,SAAS,GAAG,CAAC;AAC7G,WAAO;AAAA,EACR;AAAA,EACA,OAAO,kBAAkB,OAAO,cAAc;AAC7C,UAAM,aAAa,MAAM,aAAa,KAAI;AAC1C,QAAI,WAAW,KAAM;AACrB,UAAM,UAAU,KAAK,WAAW,IAAI,KAAK;AACzC,QAAI,YAAY,QAAQ;AACvB,YAAM,WAAW;AACjB;AAAA,IACD;AACA,aAAS,mBAAmB,WAAW,MAAM;AAC5C,UAAI,cAAc,SAAS,OAAO,SAAS,SAAU,QAAO,IAAI,gBAAgB,EAAE,MAAM,MAAM;AAC9F,aAAO;AAAA,IACR;AACA,QAAI,gBAAgB,KAAK,eAAe,IAAI,KAAK;AACjD,QAAI,kBAAkB,QAAQ;AAC7B,UAAI;AACJ,sBAAgB,IAAI,QAAQ,CAAC,YAAY;AACxC,gCAAwB;AAAA,MACzB,CAAC;AACD,WAAK,eAAe,IAAI,OAAO,aAAa;AAC5C,UAAI;AACH,cAAM,QAAQ;AAAA,UACb,OAAO,MAAM,QAAQ,OAAO;AAAA,UAC5B,QAAQ;AAAA,UACR,MAAM,QAAQ;AAAA,UACd,MAAM,QAAQ;AAAA,UACd,UAAU,QAAQ;AAAA,UAClB,MAAM,CAAA;AAAA,QACX;AACI,cAAM,KAAK,KAAK;AAAA,UACf,GAAG;AAAA,UACH,MAAM,EAAE,OAAO,mBAAmB,QAAQ,SAAS,WAAW,KAAK,EAAC;AAAA,QACzE,GAAO,OAAO;AACV,cAAM,WAAW;AACjB,yBAAiB,SAAS,cAAc;AACvC,cAAI,QAAQ,YAAY,UAAU,QAAQ,YAAY,YAAa,OAAM,KAAK,KAAK;AAAA,YAClF,GAAG;AAAA,YACH,MAAM,EAAE,OAAO,mBAAmB,QAAQ,SAAS,KAAK,EAAC;AAAA,UAC/D,GAAQ,OAAO;AACV,gBAAM;AAAA,QACP;AAAA,MACD,UAAC;AACA,gCAAqB;AAAA,MACtB;AAAA,IACD,OAAO;AACN,YAAM,WAAW;AACjB,uBAAiB,SAAS,aAAc,OAAM;AAAA,IAC/C;AAAA,EACD;AAAA,EACA,MAAM,KAAK,SAAS,KAAK;AACxB,QAAI,KAAK,qBAAsB;AAC/B,QAAI,KAAK,YAAY,GAAG,EAAG,OAAM,KAAK,OAAO,MAAM,OAAO;AAAA,EAC3D;AAAA,EACA,MAAM,aAAa,SAAS,KAAK;AAChC,UAAM,gBAAgB,KAAK,eAAe,IAAI,QAAQ,MAAM;AAC5D,QAAI,kBAAkB,OAAQ,eAAc,KAAK,MAAM;AACtD,WAAK,KAAK,SAAS,GAAG;AAAA,IACvB,CAAC;AAAA,QACI,OAAM,KAAK,KAAK,SAAS,GAAG;AAAA,EAClC;AAAA,EACA,MAAM,WAAW,KAAK;AACrB,UAAM,UAAU,WAAW,GAAG;AAC9B,UAAM,UAAU,IAAI,OAAO,aAAa,SAAS,eAAe;AAChE,UAAM,UAAU;AAAA,MACf,MAAM,IAAI,QAAQ,CAAA;AAAA,MAClB,UAAU,IAAI,OAAO,YAAY,CAAA;AAAA,MACjC,MAAM;AAAA,MACN;AAAA,MACA,QAAQ,IAAI;AAAA,IACf;AACE,SAAK,WAAW,IAAI,IAAI,IAAI,OAAO;AACnC,UAAM,YAAY,MAAM,OAAO;AAC/B,UAAM,KAAK,KAAK;AAAA,MACf,OAAO;AAAA,MACP,MAAM,EAAE,OAAO,IAAI,OAAM;AAAA,MACzB,MAAM;AAAA,MACN,MAAM,IAAI,QAAQ,CAAA;AAAA,MAClB,QAAQ,IAAI;AAAA,MACZ,UAAU,IAAI,OAAO,YAAY,CAAA;AAAA,IACpC,GAAK,OAAO;AAAA,EACX;AAAA,EACA,MAAM,cAAc,KAAK,OAAO,QAAQ;AACvC,UAAM,UAAU,KAAK,WAAW,IAAI,IAAI,EAAE;AAC1C,QAAI;AACJ,QAAI;AACJ,QAAI,YAAY,OAAQ,OAAM,IAAI,MAAM,yBAAyB,IAAI,EAAE,wBAAwB;AAC/F,QAAI,KAAK,WAAW,SAAS,EAAG;AAChC,QAAI,QAAQ,YAAY,cAAc;AACrC,kBAAY;AACZ,UAAI,QAAQ,UAAU,OAAQ,SAAQ,IAAI,eAAe;AAAA,QACxD,SAAS;AAAA,QACT,IAAI,OAAO,IAAI,EAAE;AAAA,MACrB,CAAI;AAAA,UACI,SAAQ,OAAO,MAAM;AAAA,IAC3B,WAAW,QAAQ,YAAY,OAAO;AACrC,kBAAY;AACZ,UAAI,QAAQ,UAAU,OAAQ,SAAQ,IAAI,gBAAgB,EAAE,MAAM,OAAO;AAAA,UACpE,SAAQ,OAAO;AAAA,IACrB,MAAO,OAAM,IAAI,MAAM,uBAAuB,QAAQ,OAAO,EAAE;AAC/D,UAAM,KAAK,KAAK;AAAA,MACf,OAAO;AAAA,MACP,MAAM,EAAE,MAAK;AAAA,MACb,QAAQ,IAAI;AAAA,MACZ,MAAM,QAAQ;AAAA,MACd,MAAM,QAAQ;AAAA,MACd,UAAU,QAAQ;AAAA,IACrB,GAAK,OAAO;AAAA,EACX;AAAA,EACA,MAAM,SAAS,KAAK;AACnB,UAAM,UAAU,KAAK,WAAW,IAAI,IAAI,EAAE;AAC1C,SAAK,WAAW,OAAO,IAAI,EAAE;AAC7B,QAAI;AACJ,QAAI,YAAY,OAAQ,OAAM,IAAI,MAAM,oBAAoB,IAAI,EAAE,wBAAwB;AAC1F,UAAM,cAAc,IAAI,SAAS;AACjC,QAAI;AACJ,QAAI,QAAQ,YAAY,cAAc;AACrC,iBAAW,cAAc,eAAe,IAAI;AAC3C,YAAI,WAAW,OAAQ;AACvB,iBAAS,WAAW,CAAC,GAAG;AAAA,MACzB;AACA,kBAAY;AAAA,IACb,WAAW,QAAQ,YAAY,OAAO;AACrC,eAAS;AAAA,QACR,aAAa,aAAa,IAAI,CAAC,eAAe;AAC7C,iBAAO,WAAW,IAAI,CAAC,UAAU;AAChC,mBAAO;AAAA,cACN,MAAM,MAAM;AAAA,cACZ,gBAAgB,MAAM;AAAA,YAC7B;AAAA,UACK,CAAC;AAAA,QACF,CAAC;AAAA,QACD,WAAW,IAAI,SAAS,aAAa,CAAA;AAAA,MACzC;AACG,kBAAY;AAAA,IACb,MAAO,OAAM,IAAI,MAAM,kCAAkC,QAAQ,OAAO,EAAE;AAC1E,UAAM,KAAK,aAAa;AAAA,MACvB,OAAO;AAAA,MACP,MAAM;AAAA,QACL;AAAA,QACA,OAAO,QAAQ;AAAA,MACnB;AAAA,MACG,QAAQ,IAAI;AAAA,MACZ,MAAM,QAAQ;AAAA,MACd,MAAM,QAAQ;AAAA,MACd,UAAU,QAAQ;AAAA,IACrB,GAAK,OAAO;AAAA,EACX;AAAA,EACA,MAAM,aAAa,KAAK;AACvB,UAAM,UAAU,WAAW,GAAG;AAC9B,UAAM,UAAU,IAAI,YAAY;AAChC,UAAM,UAAU;AAAA,MACf,MAAM,IAAI,QAAQ,CAAA;AAAA,MAClB,UAAU,IAAI,OAAO,YAAY,CAAA;AAAA,MACjC,MAAM;AAAA,MACN,SAAS,IAAI;AAAA,IAChB;AACE,QAAI,YAAY,CAAA;AAChB,QAAI,IAAI,OAAO,UAAU,MAAM,OAAO,KAAK,IAAI,MAAM,EAAE,WAAW,GAAG;AACpE,kBAAY,CAAA;AACZ,cAAQ,SAAS,CAAA;AAAA,IAClB,WAAW,IAAI,OAAO,UAAU,QAAQ;AACvC,gBAAU,QAAQ,IAAI,OAAO;AAC7B,cAAQ,SAAS,IAAI,OAAO;AAAA,IAC7B,OAAO;AACN,gBAAU,QAAQ,IAAI;AACtB,cAAQ,SAAS,IAAI;AAAA,IACtB;AACA,SAAK,WAAW,IAAI,IAAI,IAAI,OAAO;AACnC,UAAM,KAAK,KAAK;AAAA,MACf,OAAO,MAAM,OAAO;AAAA,MACpB,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM,IAAI,QAAQ,CAAA;AAAA,MAClB,QAAQ,IAAI;AAAA,MACZ,UAAU,IAAI,OAAO,YAAY,CAAA;AAAA,IACpC,GAAK,OAAO;AAAA,EACX;AAAA,EACA,MAAM,WAAW,KAAK;AACrB,UAAM,UAAU,KAAK,WAAW,IAAI,IAAI,EAAE;AAC1C,SAAK,WAAW,OAAO,IAAI,EAAE;AAC7B,QAAI,YAAY,OAAQ,OAAM,IAAI,MAAM,sBAAsB,IAAI,EAAE,wBAAwB;AAC5F,UAAM,YAAY,MAAM,IAAI,QAAQ;AACpC,UAAM,SAAS,IAAI,UAAU,QAAQ,UAAU,CAAA;AAC/C,UAAM,UAAU,IAAI,SAAS,UAAU,IAAI;AAC3C,UAAM,OAAO;AAAA,MACZ,QAAQ;AAAA,MACR,OAAO;AAAA,IACV;AACE,QAAI,OAAO,SAAS,OAAO,KAAK,MAAM,EAAE,WAAW,GAAG;AACrD,WAAK,QAAQ,OAAO;AACpB,cAAQ,SAAS,OAAO;AAAA,IACzB;AACA,UAAM,KAAK,aAAa;AAAA,MACvB,OAAO;AAAA,MACP;AAAA,MACA,QAAQ,IAAI;AAAA,MACZ,MAAM,QAAQ;AAAA,MACd,MAAM,QAAQ;AAAA,MACd,UAAU,QAAQ,YAAY,CAAA;AAAA,IACjC,GAAK,OAAO;AAAA,EACX;AAAA,EACA,MAAM,YAAY,KAAK;AACtB,UAAM,UAAU,WAAW,GAAG;AAC9B,UAAM,UAAU;AAAA,MACf,MAAM,IAAI,QAAQ,CAAA;AAAA,MAClB,UAAU,IAAI,OAAO,YAAY,CAAA;AAAA,MACjC,MAAM;AAAA,MACN,SAAS;AAAA,MACT,QAAQ,IAAI,UAAU,CAAA;AAAA,IACzB;AACE,SAAK,WAAW,IAAI,IAAI,IAAI,OAAO;AACnC,UAAM,KAAK,KAAK;AAAA,MACf,OAAO;AAAA,MACP,MAAM,EAAE,OAAO,IAAI,UAAU,CAAA,EAAE;AAAA,MAC/B,MAAM;AAAA,MACN,QAAQ,IAAI;AAAA,MACZ,MAAM,IAAI,QAAQ,CAAA;AAAA,MAClB,UAAU,IAAI,OAAO,YAAY,CAAA;AAAA,IACpC,GAAK,OAAO;AAAA,EACX;AAAA,EACA,MAAM,UAAU,KAAK;AACpB,UAAM,UAAU,KAAK,WAAW,IAAI,IAAI,EAAE;AAC1C,SAAK,WAAW,OAAO,IAAI,EAAE;AAC7B,QAAI,YAAY,OAAQ,OAAM,IAAI,MAAM,qBAAqB,IAAI,EAAE,wBAAwB;AAC3F,QAAI,QAAQ,WAAW,OAAQ,OAAM,IAAI,MAAM,qBAAqB,IAAI,EAAE,yDAAyD;AACnI,UAAM,SAAS,IAAI,SAAS,WAAW,SAAS,IAAI,UAAU,IAAI,QAAQ;AAC1E,UAAM,KAAK,aAAa;AAAA,MACvB,OAAO;AAAA,MACP,MAAM;AAAA,QACL;AAAA,QACA,OAAO,QAAQ;AAAA,MACnB;AAAA,MACG,QAAQ,IAAI;AAAA,MACZ,MAAM,QAAQ;AAAA,MACd,MAAM,QAAQ;AAAA,MACd,UAAU,QAAQ;AAAA,IACrB,GAAK,OAAO;AAAA,EACX;AAAA,EACA,MAAM,iBAAiB,KAAK;AAC3B,UAAM,UAAU,WAAW,GAAG;AAC9B,UAAM,UAAU;AAChB,UAAM,UAAU;AAAA,MACf,MAAM,IAAI,QAAQ,CAAA;AAAA,MAClB,UAAU,IAAI,OAAO,YAAY,CAAA;AAAA,MACjC,MAAM;AAAA,MACN;AAAA,MACA,QAAQ,EAAE,OAAO,IAAI,OAAO,MAAK;AAAA,IACpC;AACE,SAAK,WAAW,IAAI,IAAI,IAAI,OAAO;AACnC,UAAM,KAAK,KAAK;AAAA,MACf,OAAO;AAAA,MACP,MAAM,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO,QAAO;AAAA,MAC1C,MAAM;AAAA,MACN,MAAM,IAAI,QAAQ,CAAA;AAAA,MAClB,QAAQ,IAAI;AAAA,MACZ,UAAU,IAAI,OAAO,YAAY,CAAA;AAAA,IACpC,GAAK,OAAO;AAAA,EACX;AAAA,EACA,MAAM,eAAe,KAAK;AACzB,UAAM,UAAU,KAAK,WAAW,IAAI,IAAI,EAAE;AAC1C,SAAK,WAAW,OAAO,IAAI,EAAE;AAC7B,QAAI,YAAY,OAAQ,OAAM,IAAI,MAAM,0BAA0B,IAAI,EAAE,wBAAwB;AAChG,UAAM,KAAK,aAAa;AAAA,MACvB,OAAO;AAAA,MACP,MAAM;AAAA,QACL,QAAQ,IAAI,SAAS,aAAa,IAAI;AAAA,QACtC,OAAO,QAAQ;AAAA,MACnB;AAAA,MACG,QAAQ,IAAI;AAAA,MACZ,MAAM,QAAQ;AAAA,MACd,MAAM,QAAQ;AAAA,MACd,UAAU,QAAQ;AAAA,IACrB,GAAK,OAAO;AAAA,EACX;AAAA,EACA,MAAM,kBAAkB,WAAW,MAAM,OAAO;AAC/C,UAAM,UAAU,KAAK,WAAW,IAAI,KAAK;AACzC,QAAI,YAAY,OAAQ,OAAM,IAAI,MAAM,6BAA6B,KAAK,wBAAwB;AAClG,UAAM,KAAK,KAAK;AAAA,MACf,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,MAAM,QAAQ;AAAA,MACd,UAAU,QAAQ;AAAA,MAClB;AAAA,IACH,GAAK,OAAO;AAAA,EACX;AAAA,EACA,MAAM,SAAS;AACd,UAAM,kBAAkB,CAAC,GAAG,KAAK,eAAe,OAAM,CAAE;AACxD,YAAQ,IAAI,eAAe,EAAE,QAAQ,MAAM;AAC1C,WAAK,OAAO,MAAK;AAAA,IAClB,CAAC;AAAA,EACF;AACD;","x_google_ignoreList":[0]}
|