langgraph-ui-components 0.0.4 → 0.0.7
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 +143 -3134
- package/dist/index.es100.js.map +1 -1
- package/dist/index.es101.js +202 -36
- package/dist/index.es101.js.map +1 -1
- package/dist/index.es102.js +14 -5
- package/dist/index.es102.js.map +1 -1
- package/dist/index.es103.js +27 -70
- package/dist/index.es103.js.map +1 -1
- package/dist/index.es104.js +28 -31
- package/dist/index.es104.js.map +1 -1
- package/dist/index.es105.js +3157 -5
- package/dist/index.es105.js.map +1 -1
- package/dist/index.es106.js +18 -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 +11 -5
- package/dist/index.es109.js.map +1 -1
- package/dist/index.es11.js +166 -123
- package/dist/index.es11.js.map +1 -1
- package/dist/index.es110.js +503 -2
- package/dist/index.es110.js.map +1 -1
- package/dist/index.es111.js +5 -146
- package/dist/index.es111.js.map +1 -1
- package/dist/index.es112.js +2 -908
- package/dist/index.es112.js.map +1 -1
- package/dist/index.es113.js +128 -262
- package/dist/index.es113.js.map +1 -1
- package/dist/index.es114.js +907 -3
- package/dist/index.es114.js.map +1 -1
- package/dist/index.es115.js +262 -426
- package/dist/index.es115.js.map +1 -1
- package/dist/index.es116.js +3 -47
- package/dist/index.es116.js.map +1 -1
- package/dist/index.es117.js +443 -21
- package/dist/index.es117.js.map +1 -1
- package/dist/index.es118.js +42 -75
- package/dist/index.es118.js.map +1 -1
- package/dist/index.es119.js +22 -129
- 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 +74 -44
- package/dist/index.es120.js.map +1 -1
- package/dist/index.es121.js +129 -10
- package/dist/index.es121.js.map +1 -1
- package/dist/index.es122.js +47 -43
- package/dist/index.es122.js.map +1 -1
- package/dist/index.es123.js +9 -98
- package/dist/index.es123.js.map +1 -1
- package/dist/index.es124.js +43 -51
- package/dist/index.es124.js.map +1 -1
- package/dist/index.es125.js +96 -13
- package/dist/index.es125.js.map +1 -1
- package/dist/index.es126.js +52 -14
- package/dist/index.es126.js.map +1 -1
- package/dist/index.es127.js +156 -81
- package/dist/index.es127.js.map +1 -1
- package/dist/index.es128.js +2 -2
- package/dist/index.es129.js +14 -55
- 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 +87 -98
- package/dist/index.es130.js.map +1 -1
- package/dist/index.es131.js +2 -191
- package/dist/index.es131.js.map +1 -1
- package/dist/index.es132.js +54 -108
- package/dist/index.es132.js.map +1 -1
- package/dist/index.es133.js +98 -33
- package/dist/index.es133.js.map +1 -1
- package/dist/index.es134.js +191 -10
- package/dist/index.es134.js.map +1 -1
- package/dist/index.es135.js +109 -10
- package/dist/index.es135.js.map +1 -1
- package/dist/index.es136.js +35 -12
- package/dist/index.es136.js.map +1 -1
- package/dist/index.es137.js +10 -91
- package/dist/index.es137.js.map +1 -1
- package/dist/index.es138.js +11 -275
- package/dist/index.es138.js.map +1 -1
- package/dist/index.es139.js +12 -2
- package/dist/index.es139.js.map +1 -1
- package/dist/index.es140.js +88 -161
- package/dist/index.es140.js.map +1 -1
- package/dist/index.es141.js +270 -46
- package/dist/index.es141.js.map +1 -1
- package/dist/index.es142.js +2 -40
- package/dist/index.es142.js.map +1 -1
- package/dist/index.es143.js +164 -35
- package/dist/index.es143.js.map +1 -1
- package/dist/index.es144.js +45 -34
- package/dist/index.es144.js.map +1 -1
- package/dist/index.es145.js +37 -21
- package/dist/index.es145.js.map +1 -1
- package/dist/index.es146.js +32 -588
- package/dist/index.es146.js.map +1 -1
- package/dist/index.es147.js +32 -117
- package/dist/index.es147.js.map +1 -1
- package/dist/index.es148.js +22 -162
- package/dist/index.es148.js.map +1 -1
- package/dist/index.es149.js +591 -2
- package/dist/index.es149.js.map +1 -1
- package/dist/index.es15.js +15 -15
- package/dist/index.es150.js +125 -2
- package/dist/index.es150.js.map +1 -1
- package/dist/index.es151.js +2 -2
- package/dist/index.es152.js +2 -22
- package/dist/index.es152.js.map +1 -1
- package/dist/index.es153.js +22 -2
- package/dist/index.es153.js.map +1 -1
- package/dist/index.es154.js +2 -25
- package/dist/index.es154.js.map +1 -1
- package/dist/index.es155.js +25 -8
- package/dist/index.es155.js.map +1 -1
- package/dist/index.es156.js +4 -5
- package/dist/index.es156.js.map +1 -1
- package/dist/index.es157.js +7 -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 +24 -5
- package/dist/index.es161.js.map +1 -1
- package/dist/index.es162.js +11 -348
- package/dist/index.es162.js.map +1 -1
- package/dist/index.es163.js +52 -23
- package/dist/index.es163.js.map +1 -1
- package/dist/index.es164.js +63 -11
- package/dist/index.es164.js.map +1 -1
- package/dist/index.es165.js +21 -53
- package/dist/index.es165.js.map +1 -1
- package/dist/index.es166.js +6 -7
- package/dist/index.es166.js.map +1 -1
- package/dist/index.es167.js +342 -96
- package/dist/index.es167.js.map +1 -1
- package/dist/index.es168.js +6 -118
- package/dist/index.es168.js.map +1 -1
- package/dist/index.es169.js +98 -131
- package/dist/index.es169.js.map +1 -1
- package/dist/index.es17.js +2 -2
- package/dist/index.es170.js +108 -104
- package/dist/index.es170.js.map +1 -1
- package/dist/index.es171.js +136 -6
- package/dist/index.es171.js.map +1 -1
- package/dist/index.es172.js +114 -3
- package/dist/index.es172.js.map +1 -1
- package/dist/index.es173.js +6 -2
- package/dist/index.es173.js.map +1 -1
- package/dist/index.es174.js +2 -3737
- package/dist/index.es174.js.map +1 -1
- package/dist/index.es175.js +3682 -287
- package/dist/index.es175.js.map +1 -1
- package/dist/index.es176.js +321 -88
- package/dist/index.es176.js.map +1 -1
- package/dist/index.es177.js +95 -119
- package/dist/index.es177.js.map +1 -1
- package/dist/index.es178.js +131 -13
- package/dist/index.es178.js.map +1 -1
- package/dist/index.es179.js +13 -150
- package/dist/index.es179.js.map +1 -1
- package/dist/index.es180.js +150 -13
- package/dist/index.es180.js.map +1 -1
- package/dist/index.es181.js +13 -6
- package/dist/index.es181.js.map +1 -1
- package/dist/index.es182.js +6 -19
- package/dist/index.es182.js.map +1 -1
- package/dist/index.es183.js +17 -86
- package/dist/index.es183.js.map +1 -1
- package/dist/index.es184.js +69 -222
- package/dist/index.es184.js.map +1 -1
- package/dist/index.es185.js +242 -23
- package/dist/index.es185.js.map +1 -1
- package/dist/index.es186.js +23 -5
- package/dist/index.es186.js.map +1 -1
- package/dist/index.es187.js +6 -4
- package/dist/index.es187.js.map +1 -1
- package/dist/index.es188.js +4 -18
- package/dist/index.es188.js.map +1 -1
- package/dist/index.es189.js +16 -6
- package/dist/index.es189.js.map +1 -1
- package/dist/index.es19.js +119 -15
- package/dist/index.es19.js.map +1 -1
- package/dist/index.es190.js +7 -141
- package/dist/index.es190.js.map +1 -1
- package/dist/index.es191.js +142 -2
- package/dist/index.es191.js.map +1 -1
- package/dist/index.es192.js +2 -32
- package/dist/index.es192.js.map +1 -1
- package/dist/index.es193.js +31 -5
- package/dist/index.es193.js.map +1 -1
- package/dist/index.es194.js +5 -105
- package/dist/index.es194.js.map +1 -1
- package/dist/index.es195.js +106 -13
- package/dist/index.es195.js.map +1 -1
- package/dist/index.es196.js +12 -17
- package/dist/index.es196.js.map +1 -1
- package/dist/index.es197.js +15 -28
- package/dist/index.es197.js.map +1 -1
- package/dist/index.es198.js +30 -3
- package/dist/index.es198.js.map +1 -1
- package/dist/index.es199.js +3 -4
- package/dist/index.es199.js.map +1 -1
- package/dist/index.es2.js +24 -16
- package/dist/index.es2.js.map +1 -1
- package/dist/index.es20.js +17 -68
- package/dist/index.es20.js.map +1 -1
- package/dist/index.es200.js +5 -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 +36 -7
- package/dist/index.es202.js.map +1 -1
- package/dist/index.es203.js +7 -5
- package/dist/index.es203.js.map +1 -1
- package/dist/index.es204.js +5 -6
- package/dist/index.es204.js.map +1 -1
- package/dist/index.es205.js +6 -41
- package/dist/index.es205.js.map +1 -1
- package/dist/index.es206.js +41 -12
- package/dist/index.es206.js.map +1 -1
- package/dist/index.es207.js +11 -240
- package/dist/index.es207.js.map +1 -1
- package/dist/index.es208.js +239 -48
- package/dist/index.es208.js.map +1 -1
- package/dist/index.es209.js +49 -33
- package/dist/index.es209.js.map +1 -1
- package/dist/index.es21.js +3 -3
- package/dist/index.es21.js.map +1 -1
- package/dist/index.es210.js +32 -10
- package/dist/index.es210.js.map +1 -1
- package/dist/index.es211.js +12 -7
- package/dist/index.es211.js.map +1 -1
- package/dist/index.es212.js +7 -6
- package/dist/index.es212.js.map +1 -1
- package/dist/index.es213.js +6 -64
- package/dist/index.es213.js.map +1 -1
- package/dist/index.es214.js +60 -36
- package/dist/index.es214.js.map +1 -1
- package/dist/index.es215.js +39 -30
- package/dist/index.es215.js.map +1 -1
- package/dist/index.es216.js +30 -60
- package/dist/index.es216.js.map +1 -1
- package/dist/index.es217.js +60 -13
- package/dist/index.es217.js.map +1 -1
- package/dist/index.es218.js +9 -17
- package/dist/index.es218.js.map +1 -1
- package/dist/index.es219.js +23 -5
- package/dist/index.es219.js.map +1 -1
- package/dist/index.es22.js +1 -1
- package/dist/index.es220.js +4 -16
- package/dist/index.es220.js.map +1 -1
- package/dist/index.es221.js +14 -30
- package/dist/index.es221.js.map +1 -1
- package/dist/index.es222.js +32 -4
- package/dist/index.es222.js.map +1 -1
- package/dist/index.es223.js +4 -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 +5 -8
- package/dist/index.es225.js.map +1 -1
- package/dist/index.es226.js +6 -90
- package/dist/index.es226.js.map +1 -1
- package/dist/index.es227.js +90 -16
- package/dist/index.es227.js.map +1 -1
- package/dist/index.es228.js +17 -761
- package/dist/index.es228.js.map +1 -1
- package/dist/index.es229.js +762 -66
- package/dist/index.es229.js.map +1 -1
- package/dist/index.es230.js +66 -174
- package/dist/index.es230.js.map +1 -1
- package/dist/index.es231.js +169 -33
- package/dist/index.es231.js.map +1 -1
- package/dist/index.es232.js +37 -136
- 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 +103 -305
- 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 +68 -121
- 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 +305 -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 +2 -11
- package/dist/index.es275.js.map +1 -1
- package/dist/index.es276.js +9 -18
- package/dist/index.es276.js.map +1 -1
- package/dist/index.es277.js +17 -36
- package/dist/index.es277.js.map +1 -1
- package/dist/index.es278.js +42 -0
- package/dist/index.es278.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 +1191 -13
- package/dist/index.es33.js.map +1 -1
- package/dist/index.es34.js +6 -117
- package/dist/index.es34.js.map +1 -1
- package/dist/index.es35.js +8 -70
- package/dist/index.es35.js.map +1 -1
- package/dist/index.es36.js +148 -19
- package/dist/index.es36.js.map +1 -1
- package/dist/index.es37.js +112 -255
- package/dist/index.es37.js.map +1 -1
- package/dist/index.es38.js +68 -40
- package/dist/index.es38.js.map +1 -1
- package/dist/index.es39.js +17 -214
- package/dist/index.es39.js.map +1 -1
- package/dist/index.es40.js +247 -53
- package/dist/index.es40.js.map +1 -1
- package/dist/index.es41.js +24 -123
- package/dist/index.es41.js.map +1 -1
- package/dist/index.es42.js +205 -14
- package/dist/index.es42.js.map +1 -1
- package/dist/index.es43.js +58 -221
- package/dist/index.es43.js.map +1 -1
- package/dist/index.es44.js +140 -7
- package/dist/index.es44.js.map +1 -1
- package/dist/index.es45.js +17 -1185
- package/dist/index.es45.js.map +1 -1
- package/dist/index.es46.js +229 -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.es48.js +6 -8
- package/dist/index.es48.js.map +1 -1
- package/dist/index.es49.js +84 -87
- package/dist/index.es49.js.map +1 -1
- package/dist/index.es50.js +7 -3
- package/dist/index.es50.js.map +1 -1
- package/dist/index.es51.js +14 -35
- package/dist/index.es51.js.map +1 -1
- package/dist/index.es52.js +7 -71
- package/dist/index.es52.js.map +1 -1
- package/dist/index.es53.js +89 -33
- package/dist/index.es53.js.map +1 -1
- package/dist/index.es54.js +3 -305
- package/dist/index.es54.js.map +1 -1
- package/dist/index.es55.js +36 -9
- package/dist/index.es55.js.map +1 -1
- package/dist/index.es56.js +64 -83
- package/dist/index.es56.js.map +1 -1
- package/dist/index.es57.js +36 -6
- package/dist/index.es57.js.map +1 -1
- package/dist/index.es58.js +303 -12
- package/dist/index.es58.js.map +1 -1
- package/dist/index.es59.js +9 -143
- package/dist/index.es59.js.map +1 -1
- package/dist/index.es60.js +5 -299
- package/dist/index.es60.js.map +1 -1
- package/dist/index.es61.js +158 -61
- package/dist/index.es61.js.map +1 -1
- package/dist/index.es62.js +658 -199
- package/dist/index.es62.js.map +1 -1
- package/dist/index.es63.js +138 -29
- package/dist/index.es63.js.map +1 -1
- package/dist/index.es64.js +299 -8
- package/dist/index.es64.js.map +1 -1
- package/dist/index.es65.js +65 -11
- package/dist/index.es65.js.map +1 -1
- package/dist/index.es66.js +201 -175
- package/dist/index.es66.js.map +1 -1
- package/dist/index.es67.js +33 -23
- package/dist/index.es67.js.map +1 -1
- package/dist/index.es68.js +8 -1399
- package/dist/index.es68.js.map +1 -1
- package/dist/index.es69.js +12 -9
- package/dist/index.es69.js.map +1 -1
- package/dist/index.es70.js +187 -8
- package/dist/index.es70.js.map +1 -1
- package/dist/index.es71.js +24 -6
- package/dist/index.es71.js.map +1 -1
- package/dist/index.es72.js +1384 -147
- package/dist/index.es72.js.map +1 -1
- package/dist/index.es73.js +9 -672
- package/dist/index.es73.js.map +1 -1
- package/dist/index.es74.js +8 -12
- package/dist/index.es74.js.map +1 -1
- package/dist/index.es75.js +35 -38
- package/dist/index.es75.js.map +1 -1
- package/dist/index.es76.js +5 -34
- package/dist/index.es76.js.map +1 -1
- package/dist/index.es77.js +64 -223
- package/dist/index.es77.js.map +1 -1
- package/dist/index.es78.js +36 -29
- package/dist/index.es78.js.map +1 -1
- package/dist/index.es79.js +11 -74
- package/dist/index.es79.js.map +1 -1
- package/dist/index.es80.js +37 -73
- package/dist/index.es80.js.map +1 -1
- package/dist/index.es81.js +32 -50
- package/dist/index.es81.js.map +1 -1
- package/dist/index.es82.js +228 -26
- package/dist/index.es82.js.map +1 -1
- package/dist/index.es83.js +6 -19
- package/dist/index.es83.js.map +1 -1
- package/dist/index.es84.js +72 -54
- package/dist/index.es84.js.map +1 -1
- package/dist/index.es85.js +76 -13
- package/dist/index.es85.js.map +1 -1
- package/dist/index.es86.js +47 -132
- package/dist/index.es86.js.map +1 -1
- package/dist/index.es87.js +29 -20
- package/dist/index.es87.js.map +1 -1
- package/dist/index.es88.js +37 -176
- package/dist/index.es88.js.map +1 -1
- package/dist/index.es89.js +49 -233
- package/dist/index.es89.js.map +1 -1
- package/dist/index.es90.js +13 -355
- package/dist/index.es90.js.map +1 -1
- package/dist/index.es91.js +128 -128
- package/dist/index.es91.js.map +1 -1
- package/dist/index.es92.js +21 -70
- package/dist/index.es92.js.map +1 -1
- package/dist/index.es93.js +179 -34
- package/dist/index.es93.js.map +1 -1
- package/dist/index.es94.js +230 -26
- package/dist/index.es94.js.map +1 -1
- package/dist/index.es95.js +346 -157
- package/dist/index.es95.js.map +1 -1
- package/dist/index.es96.js +129 -195
- package/dist/index.es96.js.map +1 -1
- package/dist/index.es97.js +70 -14
- package/dist/index.es97.js.map +1 -1
- package/dist/index.es98.js +35 -28
- package/dist/index.es98.js.map +1 -1
- package/dist/index.es99.js +34 -31
- package/dist/index.es99.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +8 -11
package/dist/index.es37.js
CHANGED
|
@@ -1,265 +1,122 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
text
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
return {
|
|
58
|
-
additional_kwargs: "additional_kwargs",
|
|
59
|
-
response_metadata: "response_metadata"
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
[MESSAGE_SYMBOL] = true;
|
|
63
|
-
id;
|
|
64
|
-
/** @inheritdoc */
|
|
65
|
-
name;
|
|
66
|
-
content;
|
|
67
|
-
additional_kwargs;
|
|
68
|
-
response_metadata;
|
|
69
|
-
/**
|
|
70
|
-
* @deprecated Use .getType() instead or import the proper typeguard.
|
|
71
|
-
* For example:
|
|
72
|
-
*
|
|
73
|
-
* ```ts
|
|
74
|
-
* import { isAIMessage } from "@langchain/core/messages";
|
|
75
|
-
*
|
|
76
|
-
* const message = new AIMessage("Hello!");
|
|
77
|
-
* isAIMessage(message); // true
|
|
78
|
-
* ```
|
|
79
|
-
*/
|
|
80
|
-
_getType() {
|
|
81
|
-
return this.type;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* @deprecated Use .type instead
|
|
85
|
-
* The type of the message.
|
|
86
|
-
*/
|
|
87
|
-
getType() {
|
|
88
|
-
return this._getType();
|
|
89
|
-
}
|
|
90
|
-
constructor(arg) {
|
|
91
|
-
const fields = typeof arg === "string" || Array.isArray(arg) ? { content: arg } : arg;
|
|
92
|
-
if (!fields.additional_kwargs) fields.additional_kwargs = {};
|
|
93
|
-
if (!fields.response_metadata) fields.response_metadata = {};
|
|
94
|
-
super(fields);
|
|
95
|
-
this.name = fields.name;
|
|
96
|
-
if (fields.content === void 0 && fields.contentBlocks !== void 0) {
|
|
97
|
-
this.content = fields.contentBlocks;
|
|
98
|
-
this.response_metadata = {
|
|
99
|
-
output_version: "v1",
|
|
100
|
-
...fields.response_metadata
|
|
101
|
-
};
|
|
102
|
-
} else if (fields.content !== void 0) {
|
|
103
|
-
this.content = fields.content ?? [];
|
|
104
|
-
this.response_metadata = fields.response_metadata;
|
|
105
|
-
} else {
|
|
106
|
-
this.content = [];
|
|
107
|
-
this.response_metadata = fields.response_metadata;
|
|
1
|
+
const CR = "\r".charCodeAt(0);
|
|
2
|
+
const LF = "\n".charCodeAt(0);
|
|
3
|
+
const NULL = "\0".charCodeAt(0);
|
|
4
|
+
const COLON = ":".charCodeAt(0);
|
|
5
|
+
const SPACE = " ".charCodeAt(0);
|
|
6
|
+
const TRAILING_NEWLINE = [CR, LF];
|
|
7
|
+
function BytesLineDecoder() {
|
|
8
|
+
let buffer = [];
|
|
9
|
+
let trailingCr = false;
|
|
10
|
+
return new TransformStream({
|
|
11
|
+
start() {
|
|
12
|
+
buffer = [];
|
|
13
|
+
trailingCr = false;
|
|
14
|
+
},
|
|
15
|
+
transform(chunk, controller) {
|
|
16
|
+
let text = chunk;
|
|
17
|
+
if (trailingCr) {
|
|
18
|
+
text = joinArrays([[CR], text]);
|
|
19
|
+
trailingCr = false;
|
|
20
|
+
}
|
|
21
|
+
if (text.length > 0 && text.at(-1) === CR) {
|
|
22
|
+
trailingCr = true;
|
|
23
|
+
text = text.subarray(0, -1);
|
|
24
|
+
}
|
|
25
|
+
if (!text.length) return;
|
|
26
|
+
const trailingNewline = TRAILING_NEWLINE.includes(text.at(-1));
|
|
27
|
+
const lastIdx = text.length - 1;
|
|
28
|
+
const { lines } = text.reduce((acc, cur, idx) => {
|
|
29
|
+
if (acc.from > idx) return acc;
|
|
30
|
+
if (cur === CR || cur === LF) {
|
|
31
|
+
acc.lines.push(text.subarray(acc.from, idx));
|
|
32
|
+
if (cur === CR && text[idx + 1] === LF) acc.from = idx + 2;
|
|
33
|
+
else acc.from = idx + 1;
|
|
34
|
+
}
|
|
35
|
+
if (idx === lastIdx && acc.from <= lastIdx) acc.lines.push(text.subarray(acc.from));
|
|
36
|
+
return acc;
|
|
37
|
+
}, {
|
|
38
|
+
lines: [],
|
|
39
|
+
from: 0
|
|
40
|
+
});
|
|
41
|
+
if (lines.length === 1 && !trailingNewline) {
|
|
42
|
+
buffer.push(lines[0]);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (buffer.length) {
|
|
46
|
+
buffer.push(lines[0]);
|
|
47
|
+
lines[0] = joinArrays(buffer);
|
|
48
|
+
buffer = [];
|
|
49
|
+
}
|
|
50
|
+
if (!trailingNewline) {
|
|
51
|
+
if (lines.length) buffer = [lines.pop()];
|
|
52
|
+
}
|
|
53
|
+
for (const line of lines) controller.enqueue(line);
|
|
54
|
+
},
|
|
55
|
+
flush(controller) {
|
|
56
|
+
if (buffer.length) controller.enqueue(joinArrays(buffer));
|
|
108
57
|
}
|
|
109
|
-
|
|
110
|
-
this.id = fields.id;
|
|
111
|
-
}
|
|
112
|
-
/** Get text content of the message. */
|
|
113
|
-
get text() {
|
|
114
|
-
if (typeof this.content === "string") return this.content;
|
|
115
|
-
if (!Array.isArray(this.content)) return "";
|
|
116
|
-
return this.content.map((c) => {
|
|
117
|
-
if (typeof c === "string") return c;
|
|
118
|
-
if (c.type === "text") return c.text;
|
|
119
|
-
return "";
|
|
120
|
-
}).join("");
|
|
121
|
-
}
|
|
122
|
-
get contentBlocks() {
|
|
123
|
-
const blocks = typeof this.content === "string" ? [{
|
|
124
|
-
type: "text",
|
|
125
|
-
text: this.content
|
|
126
|
-
}] : this.content;
|
|
127
|
-
const parsingSteps = [
|
|
128
|
-
convertToV1FromDataContent,
|
|
129
|
-
convertToV1FromChatCompletionsInput,
|
|
130
|
-
convertToV1FromAnthropicInput
|
|
131
|
-
];
|
|
132
|
-
const parsedBlocks = parsingSteps.reduce((blocks$1, step) => step(blocks$1), blocks);
|
|
133
|
-
return parsedBlocks;
|
|
134
|
-
}
|
|
135
|
-
toDict() {
|
|
136
|
-
return {
|
|
137
|
-
type: this.getType(),
|
|
138
|
-
data: this.toJSON().kwargs
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
static lc_name() {
|
|
142
|
-
return "BaseMessage";
|
|
143
|
-
}
|
|
144
|
-
get _printableFields() {
|
|
145
|
-
return {
|
|
146
|
-
id: this.id,
|
|
147
|
-
content: this.content,
|
|
148
|
-
name: this.name,
|
|
149
|
-
additional_kwargs: this.additional_kwargs,
|
|
150
|
-
response_metadata: this.response_metadata
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
static isInstance(obj) {
|
|
154
|
-
return typeof obj === "object" && obj !== null && MESSAGE_SYMBOL in obj && obj[MESSAGE_SYMBOL] === true && isMessage(obj);
|
|
155
|
-
}
|
|
156
|
-
_updateId(value) {
|
|
157
|
-
this.id = value;
|
|
158
|
-
this.lc_kwargs.id = value;
|
|
159
|
-
}
|
|
160
|
-
get [Symbol.toStringTag]() {
|
|
161
|
-
return this.constructor.lc_name();
|
|
162
|
-
}
|
|
163
|
-
[/* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom")](depth) {
|
|
164
|
-
if (depth === null) return this;
|
|
165
|
-
const printable = stringifyWithDepthLimit(this._printableFields, Math.max(4, depth));
|
|
166
|
-
return `${this.constructor.lc_name()} ${printable}`;
|
|
167
|
-
}
|
|
168
|
-
toFormattedString(format = "pretty") {
|
|
169
|
-
return convertToFormattedString(this, format);
|
|
170
|
-
}
|
|
171
|
-
};
|
|
172
|
-
function isOpenAIToolCallArray(value) {
|
|
173
|
-
return Array.isArray(value) && value.every((v) => typeof v.index === "number");
|
|
174
|
-
}
|
|
175
|
-
function _mergeDicts(left, right) {
|
|
176
|
-
if (left === void 0 && right === void 0) return void 0;
|
|
177
|
-
if (left === void 0 || right === void 0) return left ?? right;
|
|
178
|
-
const merged = { ...left };
|
|
179
|
-
for (const [key, value] of Object.entries(right)) if (merged[key] == null) merged[key] = value;
|
|
180
|
-
else if (value == null) continue;
|
|
181
|
-
else if (typeof merged[key] !== typeof value || Array.isArray(merged[key]) !== Array.isArray(value)) throw new Error(`field[${key}] already exists in the message chunk, but with a different type.`);
|
|
182
|
-
else if (typeof merged[key] === "string") if (key === "type") continue;
|
|
183
|
-
else if ([
|
|
184
|
-
"id",
|
|
185
|
-
"name",
|
|
186
|
-
"output_version",
|
|
187
|
-
"model_provider"
|
|
188
|
-
].includes(key)) {
|
|
189
|
-
if (value) merged[key] = value;
|
|
190
|
-
} else merged[key] += value;
|
|
191
|
-
else if (typeof merged[key] === "number") merged[key] = merged[key] + value;
|
|
192
|
-
else if (typeof merged[key] === "object" && !Array.isArray(merged[key])) merged[key] = _mergeDicts(merged[key], value);
|
|
193
|
-
else if (Array.isArray(merged[key])) merged[key] = _mergeLists(merged[key], value);
|
|
194
|
-
else if (merged[key] === value) continue;
|
|
195
|
-
else console.warn(`field[${key}] already exists in this message chunk and value has unsupported type.`);
|
|
196
|
-
return merged;
|
|
58
|
+
});
|
|
197
59
|
}
|
|
198
|
-
function
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
const
|
|
209
|
-
|
|
60
|
+
function SSEDecoder() {
|
|
61
|
+
let event = "";
|
|
62
|
+
let data = [];
|
|
63
|
+
let lastEventId = "";
|
|
64
|
+
let retry = null;
|
|
65
|
+
const decoder = new TextDecoder();
|
|
66
|
+
return new TransformStream({
|
|
67
|
+
transform(chunk, controller) {
|
|
68
|
+
if (!chunk.length) {
|
|
69
|
+
if (!event && !data.length && !lastEventId && retry == null) return;
|
|
70
|
+
const sse = {
|
|
71
|
+
id: lastEventId || void 0,
|
|
72
|
+
event,
|
|
73
|
+
data: data.length ? decodeArraysToJson(decoder, data) : null
|
|
74
|
+
};
|
|
75
|
+
event = "";
|
|
76
|
+
data = [];
|
|
77
|
+
retry = null;
|
|
78
|
+
controller.enqueue(sse);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (chunk[0] === COLON) return;
|
|
82
|
+
const sepIdx = chunk.indexOf(COLON);
|
|
83
|
+
if (sepIdx === -1) return;
|
|
84
|
+
const fieldName = decoder.decode(chunk.subarray(0, sepIdx));
|
|
85
|
+
let value = chunk.subarray(sepIdx + 1);
|
|
86
|
+
if (value[0] === SPACE) value = value.subarray(1);
|
|
87
|
+
if (fieldName === "event") event = decoder.decode(value);
|
|
88
|
+
else if (fieldName === "data") data.push(value);
|
|
89
|
+
else if (fieldName === "id") {
|
|
90
|
+
if (value.indexOf(NULL) === -1) lastEventId = decoder.decode(value);
|
|
91
|
+
} else if (fieldName === "retry") {
|
|
92
|
+
const retryNum = Number.parseInt(decoder.decode(value), 10);
|
|
93
|
+
if (!Number.isNaN(retryNum)) retry = retryNum;
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
flush(controller) {
|
|
97
|
+
if (event) controller.enqueue({
|
|
98
|
+
id: lastEventId || void 0,
|
|
99
|
+
event,
|
|
100
|
+
data: data.length ? decodeArraysToJson(decoder, data) : null
|
|
210
101
|
});
|
|
211
|
-
if (toMerge !== -1 && typeof merged[toMerge] === "object" && merged[toMerge] !== null) merged[toMerge] = _mergeDicts(merged[toMerge], item);
|
|
212
|
-
else merged.push(item);
|
|
213
|
-
} else if (typeof item === "object" && item !== null && "text" in item && item.text === "") continue;
|
|
214
|
-
else merged.push(item);
|
|
215
|
-
return merged;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
function _mergeObj(left, right) {
|
|
219
|
-
if (left === void 0 && right === void 0) return void 0;
|
|
220
|
-
if (left === void 0 || right === void 0) return left ?? right;
|
|
221
|
-
else if (typeof left !== typeof right) throw new Error(`Cannot merge objects of different types.
|
|
222
|
-
Left ${typeof left}
|
|
223
|
-
Right ${typeof right}`);
|
|
224
|
-
else if (typeof left === "string" && typeof right === "string") return left + right;
|
|
225
|
-
else if (Array.isArray(left) && Array.isArray(right)) return _mergeLists(left, right);
|
|
226
|
-
else if (typeof left === "object" && typeof right === "object") return _mergeDicts(left, right);
|
|
227
|
-
else if (left === right) return left;
|
|
228
|
-
else throw new Error(`Can not merge objects of different types.
|
|
229
|
-
Left ${left}
|
|
230
|
-
Right ${right}`);
|
|
231
|
-
}
|
|
232
|
-
var BaseMessageChunk = class BaseMessageChunk2 extends BaseMessage {
|
|
233
|
-
static isInstance(obj) {
|
|
234
|
-
if (!super.isInstance(obj)) return false;
|
|
235
|
-
let proto = Object.getPrototypeOf(obj);
|
|
236
|
-
while (proto !== null) {
|
|
237
|
-
if (proto === BaseMessageChunk2.prototype) return true;
|
|
238
|
-
proto = Object.getPrototypeOf(proto);
|
|
239
102
|
}
|
|
240
|
-
|
|
241
|
-
}
|
|
242
|
-
};
|
|
243
|
-
function _isMessageFieldWithRole(x) {
|
|
244
|
-
return typeof x.role === "string";
|
|
103
|
+
});
|
|
245
104
|
}
|
|
246
|
-
function
|
|
247
|
-
|
|
105
|
+
function joinArrays(data) {
|
|
106
|
+
const totalLength = data.reduce((acc, curr) => acc + curr.length, 0);
|
|
107
|
+
const merged = new Uint8Array(totalLength);
|
|
108
|
+
let offset = 0;
|
|
109
|
+
for (const c of data) {
|
|
110
|
+
merged.set(c, offset);
|
|
111
|
+
offset += c.length;
|
|
112
|
+
}
|
|
113
|
+
return merged;
|
|
248
114
|
}
|
|
249
|
-
function
|
|
250
|
-
return
|
|
115
|
+
function decodeArraysToJson(decoder, data) {
|
|
116
|
+
return JSON.parse(decoder.decode(joinArrays(data)));
|
|
251
117
|
}
|
|
252
118
|
export {
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
_isMessageFieldWithRole,
|
|
256
|
-
_mergeDicts,
|
|
257
|
-
_mergeLists,
|
|
258
|
-
_mergeObj,
|
|
259
|
-
_mergeStatus,
|
|
260
|
-
isBaseMessage,
|
|
261
|
-
isBaseMessageChunk,
|
|
262
|
-
isOpenAIToolCallArray,
|
|
263
|
-
mergeContent
|
|
119
|
+
BytesLineDecoder,
|
|
120
|
+
SSEDecoder
|
|
264
121
|
};
|
|
265
122
|
//# sourceMappingURL=index.es37.js.map
|
package/dist/index.es37.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es37.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/base.js"],"sourcesContent":["import { Serializable } from \"../load/serializable.js\";\nimport { isDataContentBlock } from \"./content/data.js\";\nimport { convertToV1FromAnthropicInput } from \"./block_translators/anthropic.js\";\nimport { convertToV1FromDataContent } from \"./block_translators/data.js\";\nimport { convertToV1FromChatCompletionsInput } from \"./block_translators/openai.js\";\nimport { isMessage } from \"./message.js\";\nimport { convertToFormattedString } from \"./format.js\";\n\n//#region src/messages/base.ts\n/** @internal */\nconst MESSAGE_SYMBOL = Symbol.for(\"langchain.message\");\nfunction mergeContent(firstContent, secondContent) {\n\tif (typeof firstContent === \"string\") {\n\t\tif (firstContent === \"\") return secondContent;\n\t\tif (typeof secondContent === \"string\") return firstContent + secondContent;\n\t\telse if (Array.isArray(secondContent) && secondContent.length === 0) return firstContent;\n\t\telse if (Array.isArray(secondContent) && secondContent.some((c) => isDataContentBlock(c))) return [{\n\t\t\ttype: \"text\",\n\t\t\tsource_type: \"text\",\n\t\t\ttext: firstContent\n\t\t}, ...secondContent];\n\t\telse return [{\n\t\t\ttype: \"text\",\n\t\t\ttext: firstContent\n\t\t}, ...secondContent];\n\t} else if (Array.isArray(secondContent)) return _mergeLists(firstContent, secondContent) ?? [...firstContent, ...secondContent];\n\telse if (secondContent === \"\") return firstContent;\n\telse if (Array.isArray(firstContent) && firstContent.some((c) => isDataContentBlock(c))) return [...firstContent, {\n\t\ttype: \"file\",\n\t\tsource_type: \"text\",\n\t\ttext: secondContent\n\t}];\n\telse return [...firstContent, {\n\t\ttype: \"text\",\n\t\ttext: secondContent\n\t}];\n}\n/**\n* 'Merge' two statuses. If either value passed is 'error', it will return 'error'. Else\n* it will return 'success'.\n*\n* @param {\"success\" | \"error\" | undefined} left The existing value to 'merge' with the new value.\n* @param {\"success\" | \"error\" | undefined} right The new value to 'merge' with the existing value\n* @returns {\"success\" | \"error\"} The 'merged' value.\n*/\nfunction _mergeStatus(left, right) {\n\tif (left === \"error\" || right === \"error\") return \"error\";\n\treturn \"success\";\n}\nfunction stringifyWithDepthLimit(obj, depthLimit) {\n\tfunction helper(obj$1, currentDepth) {\n\t\tif (typeof obj$1 !== \"object\" || obj$1 === null || obj$1 === void 0) return obj$1;\n\t\tif (currentDepth >= depthLimit) {\n\t\t\tif (Array.isArray(obj$1)) return \"[Array]\";\n\t\t\treturn \"[Object]\";\n\t\t}\n\t\tif (Array.isArray(obj$1)) return obj$1.map((item) => helper(item, currentDepth + 1));\n\t\tconst result = {};\n\t\tfor (const key of Object.keys(obj$1)) result[key] = helper(obj$1[key], currentDepth + 1);\n\t\treturn result;\n\t}\n\treturn JSON.stringify(helper(obj, 0), null, 2);\n}\n/**\n* Base class for all types of messages in a conversation. It includes\n* properties like `content`, `name`, and `additional_kwargs`. It also\n* includes methods like `toDict()` and `_getType()`.\n*/\nvar BaseMessage = class extends Serializable {\n\tlc_namespace = [\"langchain_core\", \"messages\"];\n\tlc_serializable = true;\n\tget lc_aliases() {\n\t\treturn {\n\t\t\tadditional_kwargs: \"additional_kwargs\",\n\t\t\tresponse_metadata: \"response_metadata\"\n\t\t};\n\t}\n\t[MESSAGE_SYMBOL] = true;\n\tid;\n\t/** @inheritdoc */\n\tname;\n\tcontent;\n\tadditional_kwargs;\n\tresponse_metadata;\n\t/**\n\t* @deprecated Use .getType() instead or import the proper typeguard.\n\t* For example:\n\t*\n\t* ```ts\n\t* import { isAIMessage } from \"@langchain/core/messages\";\n\t*\n\t* const message = new AIMessage(\"Hello!\");\n\t* isAIMessage(message); // true\n\t* ```\n\t*/\n\t_getType() {\n\t\treturn this.type;\n\t}\n\t/**\n\t* @deprecated Use .type instead\n\t* The type of the message.\n\t*/\n\tgetType() {\n\t\treturn this._getType();\n\t}\n\tconstructor(arg) {\n\t\tconst fields = typeof arg === \"string\" || Array.isArray(arg) ? { content: arg } : arg;\n\t\tif (!fields.additional_kwargs) fields.additional_kwargs = {};\n\t\tif (!fields.response_metadata) fields.response_metadata = {};\n\t\tsuper(fields);\n\t\tthis.name = fields.name;\n\t\tif (fields.content === void 0 && fields.contentBlocks !== void 0) {\n\t\t\tthis.content = fields.contentBlocks;\n\t\t\tthis.response_metadata = {\n\t\t\t\toutput_version: \"v1\",\n\t\t\t\t...fields.response_metadata\n\t\t\t};\n\t\t} else if (fields.content !== void 0) {\n\t\t\tthis.content = fields.content ?? [];\n\t\t\tthis.response_metadata = fields.response_metadata;\n\t\t} else {\n\t\t\tthis.content = [];\n\t\t\tthis.response_metadata = fields.response_metadata;\n\t\t}\n\t\tthis.additional_kwargs = fields.additional_kwargs;\n\t\tthis.id = fields.id;\n\t}\n\t/** Get text content of the message. */\n\tget text() {\n\t\tif (typeof this.content === \"string\") return this.content;\n\t\tif (!Array.isArray(this.content)) return \"\";\n\t\treturn this.content.map((c) => {\n\t\t\tif (typeof c === \"string\") return c;\n\t\t\tif (c.type === \"text\") return c.text;\n\t\t\treturn \"\";\n\t\t}).join(\"\");\n\t}\n\tget contentBlocks() {\n\t\tconst blocks = typeof this.content === \"string\" ? [{\n\t\t\ttype: \"text\",\n\t\t\ttext: this.content\n\t\t}] : this.content;\n\t\tconst parsingSteps = [\n\t\t\tconvertToV1FromDataContent,\n\t\t\tconvertToV1FromChatCompletionsInput,\n\t\t\tconvertToV1FromAnthropicInput\n\t\t];\n\t\tconst parsedBlocks = parsingSteps.reduce((blocks$1, step) => step(blocks$1), blocks);\n\t\treturn parsedBlocks;\n\t}\n\ttoDict() {\n\t\treturn {\n\t\t\ttype: this.getType(),\n\t\t\tdata: this.toJSON().kwargs\n\t\t};\n\t}\n\tstatic lc_name() {\n\t\treturn \"BaseMessage\";\n\t}\n\tget _printableFields() {\n\t\treturn {\n\t\t\tid: this.id,\n\t\t\tcontent: this.content,\n\t\t\tname: this.name,\n\t\t\tadditional_kwargs: this.additional_kwargs,\n\t\t\tresponse_metadata: this.response_metadata\n\t\t};\n\t}\n\tstatic isInstance(obj) {\n\t\treturn typeof obj === \"object\" && obj !== null && MESSAGE_SYMBOL in obj && obj[MESSAGE_SYMBOL] === true && isMessage(obj);\n\t}\n\t_updateId(value) {\n\t\tthis.id = value;\n\t\tthis.lc_kwargs.id = value;\n\t}\n\tget [Symbol.toStringTag]() {\n\t\treturn this.constructor.lc_name();\n\t}\n\t[Symbol.for(\"nodejs.util.inspect.custom\")](depth) {\n\t\tif (depth === null) return this;\n\t\tconst printable = stringifyWithDepthLimit(this._printableFields, Math.max(4, depth));\n\t\treturn `${this.constructor.lc_name()} ${printable}`;\n\t}\n\ttoFormattedString(format = \"pretty\") {\n\t\treturn convertToFormattedString(this, format);\n\t}\n};\nfunction isOpenAIToolCallArray(value) {\n\treturn Array.isArray(value) && value.every((v) => typeof v.index === \"number\");\n}\nfunction _mergeDicts(left, right) {\n\tif (left === void 0 && right === void 0) return void 0;\n\tif (left === void 0 || right === void 0) return left ?? right;\n\tconst merged = { ...left };\n\tfor (const [key, value] of Object.entries(right)) if (merged[key] == null) merged[key] = value;\n\telse if (value == null) continue;\n\telse if (typeof merged[key] !== typeof value || Array.isArray(merged[key]) !== Array.isArray(value)) throw new Error(`field[${key}] already exists in the message chunk, but with a different type.`);\n\telse if (typeof merged[key] === \"string\") if (key === \"type\") continue;\n\telse if ([\n\t\t\"id\",\n\t\t\"name\",\n\t\t\"output_version\",\n\t\t\"model_provider\"\n\t].includes(key)) {\n\t\tif (value) merged[key] = value;\n\t} else merged[key] += value;\n\telse if (typeof merged[key] === \"number\") merged[key] = merged[key] + value;\n\telse if (typeof merged[key] === \"object\" && !Array.isArray(merged[key])) merged[key] = _mergeDicts(merged[key], value);\n\telse if (Array.isArray(merged[key])) merged[key] = _mergeLists(merged[key], value);\n\telse if (merged[key] === value) continue;\n\telse console.warn(`field[${key}] already exists in this message chunk and value has unsupported type.`);\n\treturn merged;\n}\nfunction _mergeLists(left, right) {\n\tif (left === void 0 && right === void 0) return void 0;\n\telse if (left === void 0 || right === void 0) return left || right;\n\telse {\n\t\tconst merged = [...left];\n\t\tfor (const item of right) if (typeof item === \"object\" && item !== null && \"index\" in item && typeof item.index === \"number\") {\n\t\t\tconst toMerge = merged.findIndex((leftItem) => {\n\t\t\t\tconst isObject = typeof leftItem === \"object\";\n\t\t\t\tconst indiciesMatch = \"index\" in leftItem && leftItem.index === item.index;\n\t\t\t\tconst idsMatch = \"id\" in leftItem && \"id\" in item && leftItem?.id === item?.id;\n\t\t\t\tconst eitherItemMissingID = !(\"id\" in leftItem) || !leftItem?.id || !(\"id\" in item) || !item?.id;\n\t\t\t\treturn isObject && indiciesMatch && (idsMatch || eitherItemMissingID);\n\t\t\t});\n\t\t\tif (toMerge !== -1 && typeof merged[toMerge] === \"object\" && merged[toMerge] !== null) merged[toMerge] = _mergeDicts(merged[toMerge], item);\n\t\t\telse merged.push(item);\n\t\t} else if (typeof item === \"object\" && item !== null && \"text\" in item && item.text === \"\") continue;\n\t\telse merged.push(item);\n\t\treturn merged;\n\t}\n}\nfunction _mergeObj(left, right) {\n\tif (left === void 0 && right === void 0) return void 0;\n\tif (left === void 0 || right === void 0) return left ?? right;\n\telse if (typeof left !== typeof right) throw new Error(`Cannot merge objects of different types.\\nLeft ${typeof left}\\nRight ${typeof right}`);\n\telse if (typeof left === \"string\" && typeof right === \"string\") return left + right;\n\telse if (Array.isArray(left) && Array.isArray(right)) return _mergeLists(left, right);\n\telse if (typeof left === \"object\" && typeof right === \"object\") return _mergeDicts(left, right);\n\telse if (left === right) return left;\n\telse throw new Error(`Can not merge objects of different types.\\nLeft ${left}\\nRight ${right}`);\n}\n/**\n* Represents a chunk of a message, which can be concatenated with other\n* message chunks. It includes a method `_merge_kwargs_dict()` for merging\n* additional keyword arguments from another `BaseMessageChunk` into this\n* one. It also overrides the `__add__()` method to support concatenation\n* of `BaseMessageChunk` instances.\n*/\nvar BaseMessageChunk = class BaseMessageChunk extends BaseMessage {\n\tstatic isInstance(obj) {\n\t\tif (!super.isInstance(obj)) return false;\n\t\tlet proto = Object.getPrototypeOf(obj);\n\t\twhile (proto !== null) {\n\t\t\tif (proto === BaseMessageChunk.prototype) return true;\n\t\t\tproto = Object.getPrototypeOf(proto);\n\t\t}\n\t\treturn false;\n\t}\n};\nfunction _isMessageFieldWithRole(x) {\n\treturn typeof x.role === \"string\";\n}\n/**\n* @deprecated Use {@link BaseMessage.isInstance} instead\n*/\nfunction isBaseMessage(messageLike) {\n\treturn typeof messageLike?._getType === \"function\";\n}\n/**\n* @deprecated Use {@link BaseMessageChunk.isInstance} instead\n*/\nfunction isBaseMessageChunk(messageLike) {\n\treturn BaseMessageChunk.isInstance(messageLike);\n}\n\n//#endregion\nexport { BaseMessage, BaseMessageChunk, _isMessageFieldWithRole, _mergeDicts, _mergeLists, _mergeObj, _mergeStatus, isBaseMessage, isBaseMessageChunk, isOpenAIToolCallArray, mergeContent };\n//# sourceMappingURL=base.js.map"],"names":["BaseMessageChunk"],"mappings":";;;;;;;AAUA,MAAM,iBAAiB,uBAAO,IAAI,mBAAmB;AACrD,SAAS,aAAa,cAAc,eAAe;AAClD,MAAI,OAAO,iBAAiB,UAAU;AACrC,QAAI,iBAAiB,GAAI,QAAO;AAChC,QAAI,OAAO,kBAAkB,SAAU,QAAO,eAAe;AAAA,aACpD,MAAM,QAAQ,aAAa,KAAK,cAAc,WAAW,EAAG,QAAO;AAAA,aACnE,MAAM,QAAQ,aAAa,KAAK,cAAc,KAAK,CAAC,MAAM,mBAAmB,CAAC,CAAC,EAAG,QAAO,CAAC;AAAA,MAClG,MAAM;AAAA,MACN,aAAa;AAAA,MACb,MAAM;AAAA,IACT,GAAK,GAAG,aAAa;AAAA,QACd,QAAO,CAAC;AAAA,MACZ,MAAM;AAAA,MACN,MAAM;AAAA,IACT,GAAK,GAAG,aAAa;AAAA,EACpB,WAAW,MAAM,QAAQ,aAAa,EAAG,QAAO,YAAY,cAAc,aAAa,KAAK,CAAC,GAAG,cAAc,GAAG,aAAa;AAAA,WACrH,kBAAkB,GAAI,QAAO;AAAA,WAC7B,MAAM,QAAQ,YAAY,KAAK,aAAa,KAAK,CAAC,MAAM,mBAAmB,CAAC,CAAC,EAAG,QAAO,CAAC,GAAG,cAAc;AAAA,IACjH,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,EACR,CAAE;AAAA,MACI,QAAO,CAAC,GAAG,cAAc;AAAA,IAC7B,MAAM;AAAA,IACN,MAAM;AAAA,EACR,CAAE;AACF;AASA,SAAS,aAAa,MAAM,OAAO;AAClC,MAAI,SAAS,WAAW,UAAU,QAAS,QAAO;AAClD,SAAO;AACR;AACA,SAAS,wBAAwB,KAAK,YAAY;AACjD,WAAS,OAAO,OAAO,cAAc;AACpC,QAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,UAAU,OAAQ,QAAO;AAC5E,QAAI,gBAAgB,YAAY;AAC/B,UAAI,MAAM,QAAQ,KAAK,EAAG,QAAO;AACjC,aAAO;AAAA,IACR;AACA,QAAI,MAAM,QAAQ,KAAK,EAAG,QAAO,MAAM,IAAI,CAAC,SAAS,OAAO,MAAM,eAAe,CAAC,CAAC;AACnF,UAAM,SAAS,CAAA;AACf,eAAW,OAAO,OAAO,KAAK,KAAK,EAAG,QAAO,GAAG,IAAI,OAAO,MAAM,GAAG,GAAG,eAAe,CAAC;AACvF,WAAO;AAAA,EACR;AACA,SAAO,KAAK,UAAU,OAAO,KAAK,CAAC,GAAG,MAAM,CAAC;AAC9C;AAMG,IAAC,cAAc,cAAc,aAAa;AAAA,EAC5C,eAAe,CAAC,kBAAkB,UAAU;AAAA,EAC5C,kBAAkB;AAAA,EAClB,IAAI,aAAa;AAChB,WAAO;AAAA,MACN,mBAAmB;AAAA,MACnB,mBAAmB;AAAA,IACtB;AAAA,EACC;AAAA,EACA,CAAC,cAAc,IAAI;AAAA,EACnB;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,WAAW;AACV,WAAO,KAAK;AAAA,EACb;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU;AACT,WAAO,KAAK,SAAQ;AAAA,EACrB;AAAA,EACA,YAAY,KAAK;AAChB,UAAM,SAAS,OAAO,QAAQ,YAAY,MAAM,QAAQ,GAAG,IAAI,EAAE,SAAS,IAAG,IAAK;AAClF,QAAI,CAAC,OAAO,kBAAmB,QAAO,oBAAoB,CAAA;AAC1D,QAAI,CAAC,OAAO,kBAAmB,QAAO,oBAAoB,CAAA;AAC1D,UAAM,MAAM;AACZ,SAAK,OAAO,OAAO;AACnB,QAAI,OAAO,YAAY,UAAU,OAAO,kBAAkB,QAAQ;AACjE,WAAK,UAAU,OAAO;AACtB,WAAK,oBAAoB;AAAA,QACxB,gBAAgB;AAAA,QAChB,GAAG,OAAO;AAAA,MACd;AAAA,IACE,WAAW,OAAO,YAAY,QAAQ;AACrC,WAAK,UAAU,OAAO,WAAW,CAAA;AACjC,WAAK,oBAAoB,OAAO;AAAA,IACjC,OAAO;AACN,WAAK,UAAU,CAAA;AACf,WAAK,oBAAoB,OAAO;AAAA,IACjC;AACA,SAAK,oBAAoB,OAAO;AAChC,SAAK,KAAK,OAAO;AAAA,EAClB;AAAA;AAAA,EAEA,IAAI,OAAO;AACV,QAAI,OAAO,KAAK,YAAY,SAAU,QAAO,KAAK;AAClD,QAAI,CAAC,MAAM,QAAQ,KAAK,OAAO,EAAG,QAAO;AACzC,WAAO,KAAK,QAAQ,IAAI,CAAC,MAAM;AAC9B,UAAI,OAAO,MAAM,SAAU,QAAO;AAClC,UAAI,EAAE,SAAS,OAAQ,QAAO,EAAE;AAChC,aAAO;AAAA,IACR,CAAC,EAAE,KAAK,EAAE;AAAA,EACX;AAAA,EACA,IAAI,gBAAgB;AACnB,UAAM,SAAS,OAAO,KAAK,YAAY,WAAW,CAAC;AAAA,MAClD,MAAM;AAAA,MACN,MAAM,KAAK;AAAA,IACd,CAAG,IAAI,KAAK;AACV,UAAM,eAAe;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,IACH;AACE,UAAM,eAAe,aAAa,OAAO,CAAC,UAAU,SAAS,KAAK,QAAQ,GAAG,MAAM;AACnF,WAAO;AAAA,EACR;AAAA,EACA,SAAS;AACR,WAAO;AAAA,MACN,MAAM,KAAK,QAAO;AAAA,MAClB,MAAM,KAAK,SAAS;AAAA,IACvB;AAAA,EACC;AAAA,EACA,OAAO,UAAU;AAChB,WAAO;AAAA,EACR;AAAA,EACA,IAAI,mBAAmB;AACtB,WAAO;AAAA,MACN,IAAI,KAAK;AAAA,MACT,SAAS,KAAK;AAAA,MACd,MAAM,KAAK;AAAA,MACX,mBAAmB,KAAK;AAAA,MACxB,mBAAmB,KAAK;AAAA,IAC3B;AAAA,EACC;AAAA,EACA,OAAO,WAAW,KAAK;AACtB,WAAO,OAAO,QAAQ,YAAY,QAAQ,QAAQ,kBAAkB,OAAO,IAAI,cAAc,MAAM,QAAQ,UAAU,GAAG;AAAA,EACzH;AAAA,EACA,UAAU,OAAO;AAChB,SAAK,KAAK;AACV,SAAK,UAAU,KAAK;AAAA,EACrB;AAAA,EACA,KAAK,OAAO,WAAW,IAAI;AAC1B,WAAO,KAAK,YAAY,QAAO;AAAA,EAChC;AAAA,EACA,CAAC,uBAAO,IAAI,4BAA4B,CAAC,EAAE,OAAO;AACjD,QAAI,UAAU,KAAM,QAAO;AAC3B,UAAM,YAAY,wBAAwB,KAAK,kBAAkB,KAAK,IAAI,GAAG,KAAK,CAAC;AACnF,WAAO,GAAG,KAAK,YAAY,QAAO,CAAE,IAAI,SAAS;AAAA,EAClD;AAAA,EACA,kBAAkB,SAAS,UAAU;AACpC,WAAO,yBAAyB,MAAM,MAAM;AAAA,EAC7C;AACD;AACA,SAAS,sBAAsB,OAAO;AACrC,SAAO,MAAM,QAAQ,KAAK,KAAK,MAAM,MAAM,CAAC,MAAM,OAAO,EAAE,UAAU,QAAQ;AAC9E;AACA,SAAS,YAAY,MAAM,OAAO;AACjC,MAAI,SAAS,UAAU,UAAU,OAAQ,QAAO;AAChD,MAAI,SAAS,UAAU,UAAU,OAAQ,QAAO,QAAQ;AACxD,QAAM,SAAS,EAAE,GAAG,KAAI;AACxB,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,KAAK,EAAG,KAAI,OAAO,GAAG,KAAK,KAAM,QAAO,GAAG,IAAI;AAAA,WAChF,SAAS,KAAM;AAAA,WACf,OAAO,OAAO,GAAG,MAAM,OAAO,SAAS,MAAM,QAAQ,OAAO,GAAG,CAAC,MAAM,MAAM,QAAQ,KAAK,EAAG,OAAM,IAAI,MAAM,SAAS,GAAG,mEAAmE;AAAA,WAC3L,OAAO,OAAO,GAAG,MAAM,SAAU,KAAI,QAAQ,OAAQ;AAAA,WACrD;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,EAAG,SAAS,GAAG,GAAG;AAChB,QAAI,MAAO,QAAO,GAAG,IAAI;AAAA,EAC1B,MAAO,QAAO,GAAG,KAAK;AAAA,WACb,OAAO,OAAO,GAAG,MAAM,SAAU,QAAO,GAAG,IAAI,OAAO,GAAG,IAAI;AAAA,WAC7D,OAAO,OAAO,GAAG,MAAM,YAAY,CAAC,MAAM,QAAQ,OAAO,GAAG,CAAC,EAAG,QAAO,GAAG,IAAI,YAAY,OAAO,GAAG,GAAG,KAAK;AAAA,WAC5G,MAAM,QAAQ,OAAO,GAAG,CAAC,EAAG,QAAO,GAAG,IAAI,YAAY,OAAO,GAAG,GAAG,KAAK;AAAA,WACxE,OAAO,GAAG,MAAM,MAAO;AAAA,MAC3B,SAAQ,KAAK,SAAS,GAAG,wEAAwE;AACtG,SAAO;AACR;AACA,SAAS,YAAY,MAAM,OAAO;AACjC,MAAI,SAAS,UAAU,UAAU,OAAQ,QAAO;AAAA,WACvC,SAAS,UAAU,UAAU,OAAQ,QAAO,QAAQ;AAAA,OACxD;AACJ,UAAM,SAAS,CAAC,GAAG,IAAI;AACvB,eAAW,QAAQ,MAAO,KAAI,OAAO,SAAS,YAAY,SAAS,QAAQ,WAAW,QAAQ,OAAO,KAAK,UAAU,UAAU;AAC7H,YAAM,UAAU,OAAO,UAAU,CAAC,aAAa;AAC9C,cAAM,WAAW,OAAO,aAAa;AACrC,cAAM,gBAAgB,WAAW,YAAY,SAAS,UAAU,KAAK;AACrE,cAAM,WAAW,QAAQ,YAAY,QAAQ,QAAQ,UAAU,OAAO,MAAM;AAC5E,cAAM,sBAAsB,EAAE,QAAQ,aAAa,CAAC,UAAU,MAAM,EAAE,QAAQ,SAAS,CAAC,MAAM;AAC9F,eAAO,YAAY,kBAAkB,YAAY;AAAA,MAClD,CAAC;AACD,UAAI,YAAY,MAAM,OAAO,OAAO,OAAO,MAAM,YAAY,OAAO,OAAO,MAAM,KAAM,QAAO,OAAO,IAAI,YAAY,OAAO,OAAO,GAAG,IAAI;AAAA,UACrI,QAAO,KAAK,IAAI;AAAA,IACtB,WAAW,OAAO,SAAS,YAAY,SAAS,QAAQ,UAAU,QAAQ,KAAK,SAAS,GAAI;AAAA,QACvF,QAAO,KAAK,IAAI;AACrB,WAAO;AAAA,EACR;AACD;AACA,SAAS,UAAU,MAAM,OAAO;AAC/B,MAAI,SAAS,UAAU,UAAU,OAAQ,QAAO;AAChD,MAAI,SAAS,UAAU,UAAU,OAAQ,QAAO,QAAQ;AAAA,WAC/C,OAAO,SAAS,OAAO,MAAO,OAAM,IAAI,MAAM;AAAA,OAAkD,OAAO,IAAI;AAAA,QAAW,OAAO,KAAK,EAAE;AAAA,WACpI,OAAO,SAAS,YAAY,OAAO,UAAU,SAAU,QAAO,OAAO;AAAA,WACrE,MAAM,QAAQ,IAAI,KAAK,MAAM,QAAQ,KAAK,EAAG,QAAO,YAAY,MAAM,KAAK;AAAA,WAC3E,OAAO,SAAS,YAAY,OAAO,UAAU,SAAU,QAAO,YAAY,MAAM,KAAK;AAAA,WACrF,SAAS,MAAO,QAAO;AAAA,MAC3B,OAAM,IAAI,MAAM;AAAA,OAAmD,IAAI;AAAA,QAAW,KAAK,EAAE;AAC/F;AAQG,IAAC,mBAAmB,MAAMA,0BAAyB,YAAY;AAAA,EACjE,OAAO,WAAW,KAAK;AACtB,QAAI,CAAC,MAAM,WAAW,GAAG,EAAG,QAAO;AACnC,QAAI,QAAQ,OAAO,eAAe,GAAG;AACrC,WAAO,UAAU,MAAM;AACtB,UAAI,UAAUA,kBAAiB,UAAW,QAAO;AACjD,cAAQ,OAAO,eAAe,KAAK;AAAA,IACpC;AACA,WAAO;AAAA,EACR;AACD;AACA,SAAS,wBAAwB,GAAG;AACnC,SAAO,OAAO,EAAE,SAAS;AAC1B;AAIA,SAAS,cAAc,aAAa;AACnC,SAAO,OAAO,aAAa,aAAa;AACzC;AAIA,SAAS,mBAAmB,aAAa;AACxC,SAAO,iBAAiB,WAAW,WAAW;AAC/C;","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"index.es37.js","sources":["../node_modules/.pnpm/@langchain+langgraph-sdk@1.5.3_@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5___react-d_6e8116ad15c37793c6138fe0d58aa04e/node_modules/@langchain/langgraph-sdk/dist/utils/sse.js"],"sourcesContent":["//#region src/utils/sse.ts\nconst CR = \"\\r\".charCodeAt(0);\nconst LF = \"\\n\".charCodeAt(0);\nconst NULL = \"\\0\".charCodeAt(0);\nconst COLON = \":\".charCodeAt(0);\nconst SPACE = \" \".charCodeAt(0);\nconst TRAILING_NEWLINE = [CR, LF];\nfunction BytesLineDecoder() {\n\tlet buffer = [];\n\tlet trailingCr = false;\n\treturn new TransformStream({\n\t\tstart() {\n\t\t\tbuffer = [];\n\t\t\ttrailingCr = false;\n\t\t},\n\t\ttransform(chunk, controller) {\n\t\t\tlet text = chunk;\n\t\t\tif (trailingCr) {\n\t\t\t\ttext = joinArrays([[CR], text]);\n\t\t\t\ttrailingCr = false;\n\t\t\t}\n\t\t\tif (text.length > 0 && text.at(-1) === CR) {\n\t\t\t\ttrailingCr = true;\n\t\t\t\ttext = text.subarray(0, -1);\n\t\t\t}\n\t\t\tif (!text.length) return;\n\t\t\tconst trailingNewline = TRAILING_NEWLINE.includes(text.at(-1));\n\t\t\tconst lastIdx = text.length - 1;\n\t\t\tconst { lines } = text.reduce((acc, cur, idx) => {\n\t\t\t\tif (acc.from > idx) return acc;\n\t\t\t\tif (cur === CR || cur === LF) {\n\t\t\t\t\tacc.lines.push(text.subarray(acc.from, idx));\n\t\t\t\t\tif (cur === CR && text[idx + 1] === LF) acc.from = idx + 2;\n\t\t\t\t\telse acc.from = idx + 1;\n\t\t\t\t}\n\t\t\t\tif (idx === lastIdx && acc.from <= lastIdx) acc.lines.push(text.subarray(acc.from));\n\t\t\t\treturn acc;\n\t\t\t}, {\n\t\t\t\tlines: [],\n\t\t\t\tfrom: 0\n\t\t\t});\n\t\t\tif (lines.length === 1 && !trailingNewline) {\n\t\t\t\tbuffer.push(lines[0]);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (buffer.length) {\n\t\t\t\tbuffer.push(lines[0]);\n\t\t\t\tlines[0] = joinArrays(buffer);\n\t\t\t\tbuffer = [];\n\t\t\t}\n\t\t\tif (!trailingNewline) {\n\t\t\t\tif (lines.length) buffer = [lines.pop()];\n\t\t\t}\n\t\t\tfor (const line of lines) controller.enqueue(line);\n\t\t},\n\t\tflush(controller) {\n\t\t\tif (buffer.length) controller.enqueue(joinArrays(buffer));\n\t\t}\n\t});\n}\nfunction SSEDecoder() {\n\tlet event = \"\";\n\tlet data = [];\n\tlet lastEventId = \"\";\n\tlet retry = null;\n\tconst decoder = new TextDecoder();\n\treturn new TransformStream({\n\t\ttransform(chunk, controller) {\n\t\t\tif (!chunk.length) {\n\t\t\t\tif (!event && !data.length && !lastEventId && retry == null) return;\n\t\t\t\tconst sse = {\n\t\t\t\t\tid: lastEventId || void 0,\n\t\t\t\t\tevent,\n\t\t\t\t\tdata: data.length ? decodeArraysToJson(decoder, data) : null\n\t\t\t\t};\n\t\t\t\tevent = \"\";\n\t\t\t\tdata = [];\n\t\t\t\tretry = null;\n\t\t\t\tcontroller.enqueue(sse);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (chunk[0] === COLON) return;\n\t\t\tconst sepIdx = chunk.indexOf(COLON);\n\t\t\tif (sepIdx === -1) return;\n\t\t\tconst fieldName = decoder.decode(chunk.subarray(0, sepIdx));\n\t\t\tlet value = chunk.subarray(sepIdx + 1);\n\t\t\tif (value[0] === SPACE) value = value.subarray(1);\n\t\t\tif (fieldName === \"event\") event = decoder.decode(value);\n\t\t\telse if (fieldName === \"data\") data.push(value);\n\t\t\telse if (fieldName === \"id\") {\n\t\t\t\tif (value.indexOf(NULL) === -1) lastEventId = decoder.decode(value);\n\t\t\t} else if (fieldName === \"retry\") {\n\t\t\t\tconst retryNum = Number.parseInt(decoder.decode(value), 10);\n\t\t\t\tif (!Number.isNaN(retryNum)) retry = retryNum;\n\t\t\t}\n\t\t},\n\t\tflush(controller) {\n\t\t\tif (event) controller.enqueue({\n\t\t\t\tid: lastEventId || void 0,\n\t\t\t\tevent,\n\t\t\t\tdata: data.length ? decodeArraysToJson(decoder, data) : null\n\t\t\t});\n\t\t}\n\t});\n}\nfunction joinArrays(data) {\n\tconst totalLength = data.reduce((acc, curr) => acc + curr.length, 0);\n\tconst merged = new Uint8Array(totalLength);\n\tlet offset = 0;\n\tfor (const c of data) {\n\t\tmerged.set(c, offset);\n\t\toffset += c.length;\n\t}\n\treturn merged;\n}\nfunction decodeArraysToJson(decoder, data) {\n\treturn JSON.parse(decoder.decode(joinArrays(data)));\n}\n\n//#endregion\nexport { BytesLineDecoder, SSEDecoder };\n//# sourceMappingURL=sse.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/index.es38.js
CHANGED
|
@@ -1,47 +1,75 @@
|
|
|
1
|
-
import {
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
constructor(fields) {
|
|
8
|
-
super(fields);
|
|
9
|
-
}
|
|
10
|
-
static isInstance(obj) {
|
|
11
|
-
return super.isInstance(obj) && obj.type === "human";
|
|
1
|
+
import { isNetworkError } from "./index.es39.js";
|
|
2
|
+
var MaxReconnectAttemptsError = class extends Error {
|
|
3
|
+
constructor(maxAttempts, cause) {
|
|
4
|
+
super(`Exceeded maximum SSE reconnection attempts (${maxAttempts})`);
|
|
5
|
+
this.name = "MaxReconnectAttemptsError";
|
|
6
|
+
this.cause = cause;
|
|
12
7
|
}
|
|
13
8
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
9
|
+
async function* streamWithRetry(makeRequest, options = {}) {
|
|
10
|
+
const maxRetries = options.maxRetries ?? 5;
|
|
11
|
+
let attempt = 0;
|
|
12
|
+
let lastEventId;
|
|
13
|
+
let reconnectPath;
|
|
14
|
+
while (true) {
|
|
15
|
+
let shouldRetry = false;
|
|
16
|
+
let lastError;
|
|
17
|
+
let reader;
|
|
18
|
+
try {
|
|
19
|
+
if (options.signal?.aborted) return;
|
|
20
|
+
const { response, stream } = await makeRequest(reconnectPath ? {
|
|
21
|
+
lastEventId,
|
|
22
|
+
reconnectPath
|
|
23
|
+
} : void 0);
|
|
24
|
+
const locationHeader = response.headers.get("location");
|
|
25
|
+
if (locationHeader) reconnectPath = locationHeader;
|
|
26
|
+
const contentType = response.headers.get("content-type")?.split(";")[0];
|
|
27
|
+
if (contentType && !contentType.includes("text/event-stream")) throw new Error(`Expected response header Content-Type to contain 'text/event-stream', got '${contentType}'`);
|
|
28
|
+
reader = stream.getReader();
|
|
29
|
+
try {
|
|
30
|
+
while (true) {
|
|
31
|
+
if (options.signal?.aborted) {
|
|
32
|
+
await reader.cancel();
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const { done, value } = await reader.read();
|
|
36
|
+
if (done) break;
|
|
37
|
+
if (value.id) lastEventId = value.id;
|
|
38
|
+
yield value;
|
|
39
|
+
}
|
|
40
|
+
break;
|
|
41
|
+
} catch (error) {
|
|
42
|
+
if (reconnectPath && !options.signal?.aborted) shouldRetry = true;
|
|
43
|
+
else throw error;
|
|
44
|
+
} finally {
|
|
45
|
+
if (reader) try {
|
|
46
|
+
reader.releaseLock();
|
|
47
|
+
} catch {
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
} catch (error) {
|
|
51
|
+
lastError = error;
|
|
52
|
+
if (isNetworkError(error) && reconnectPath && !options.signal?.aborted) shouldRetry = true;
|
|
53
|
+
else throw error;
|
|
54
|
+
}
|
|
55
|
+
if (shouldRetry) {
|
|
56
|
+
attempt += 1;
|
|
57
|
+
if (attempt > maxRetries) throw new MaxReconnectAttemptsError(maxRetries, lastError);
|
|
58
|
+
options.onReconnect?.({
|
|
59
|
+
attempt,
|
|
60
|
+
lastEventId,
|
|
61
|
+
cause: lastError
|
|
62
|
+
});
|
|
63
|
+
const delay = Math.min(1e3 * 2 ** (attempt - 1), 5e3) + Math.random() * 1e3;
|
|
64
|
+
await new Promise((resolve) => {
|
|
65
|
+
setTimeout(resolve, delay);
|
|
66
|
+
});
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
break;
|
|
30
70
|
}
|
|
31
|
-
static isInstance(obj) {
|
|
32
|
-
return super.isInstance(obj) && obj.type === "human";
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
function isHumanMessage(x) {
|
|
36
|
-
return x.getType() === "human";
|
|
37
|
-
}
|
|
38
|
-
function isHumanMessageChunk(x) {
|
|
39
|
-
return x.getType() === "human";
|
|
40
71
|
}
|
|
41
72
|
export {
|
|
42
|
-
|
|
43
|
-
HumanMessageChunk,
|
|
44
|
-
isHumanMessage,
|
|
45
|
-
isHumanMessageChunk
|
|
73
|
+
streamWithRetry
|
|
46
74
|
};
|
|
47
75
|
//# sourceMappingURL=index.es38.js.map
|
package/dist/index.es38.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es38.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.
|
|
1
|
+
{"version":3,"file":"index.es38.js","sources":["../node_modules/.pnpm/@langchain+langgraph-sdk@1.5.3_@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5___react-d_6e8116ad15c37793c6138fe0d58aa04e/node_modules/@langchain/langgraph-sdk/dist/utils/stream.js"],"sourcesContent":["import { isNetworkError } from \"./error.js\";\n\n//#region src/utils/stream.ts\n/**\n* Error thrown when maximum reconnection attempts are exceeded.\n*/\nvar MaxReconnectAttemptsError = class extends Error {\n\tconstructor(maxAttempts, cause) {\n\t\tsuper(`Exceeded maximum SSE reconnection attempts (${maxAttempts})`);\n\t\tthis.name = \"MaxReconnectAttemptsError\";\n\t\tthis.cause = cause;\n\t}\n};\n/**\n* Stream with automatic retry logic for SSE connections.\n* Implements reconnection behavior similar to the Python SDK.\n*\n* @param makeRequest Function to make requests. When `params` is undefined/empty, it's the initial request.\n* When `params.reconnectPath` is provided, it's a reconnection request.\n* @param options Configuration options\n* @returns AsyncGenerator yielding stream events\n*/\nasync function* streamWithRetry(makeRequest, options = {}) {\n\tconst maxRetries = options.maxRetries ?? 5;\n\tlet attempt = 0;\n\tlet lastEventId;\n\tlet reconnectPath;\n\twhile (true) {\n\t\tlet shouldRetry = false;\n\t\tlet lastError;\n\t\tlet reader;\n\t\ttry {\n\t\t\tif (options.signal?.aborted) return;\n\t\t\tconst { response, stream } = await makeRequest(reconnectPath ? {\n\t\t\t\tlastEventId,\n\t\t\t\treconnectPath\n\t\t\t} : void 0);\n\t\t\tconst locationHeader = response.headers.get(\"location\");\n\t\t\tif (locationHeader) reconnectPath = locationHeader;\n\t\t\tconst contentType = response.headers.get(\"content-type\")?.split(\";\")[0];\n\t\t\tif (contentType && !contentType.includes(\"text/event-stream\")) throw new Error(`Expected response header Content-Type to contain 'text/event-stream', got '${contentType}'`);\n\t\t\treader = stream.getReader();\n\t\t\ttry {\n\t\t\t\twhile (true) {\n\t\t\t\t\tif (options.signal?.aborted) {\n\t\t\t\t\t\tawait reader.cancel();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst { done, value } = await reader.read();\n\t\t\t\t\tif (done) break;\n\t\t\t\t\tif (value.id) lastEventId = value.id;\n\t\t\t\t\tyield value;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t} catch (error) {\n\t\t\t\tif (reconnectPath && !options.signal?.aborted) shouldRetry = true;\n\t\t\t\telse throw error;\n\t\t\t} finally {\n\t\t\t\tif (reader) try {\n\t\t\t\t\treader.releaseLock();\n\t\t\t\t} catch {}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tlastError = error;\n\t\t\tif (isNetworkError(error) && reconnectPath && !options.signal?.aborted) shouldRetry = true;\n\t\t\telse throw error;\n\t\t}\n\t\tif (shouldRetry) {\n\t\t\tattempt += 1;\n\t\t\tif (attempt > maxRetries) throw new MaxReconnectAttemptsError(maxRetries, lastError);\n\t\t\toptions.onReconnect?.({\n\t\t\t\tattempt,\n\t\t\t\tlastEventId,\n\t\t\t\tcause: lastError\n\t\t\t});\n\t\t\tconst delay = Math.min(1e3 * 2 ** (attempt - 1), 5e3) + Math.random() * 1e3;\n\t\t\tawait new Promise((resolve) => {\n\t\t\t\tsetTimeout(resolve, delay);\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tbreak;\n\t}\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\tasync [Symbol.asyncDispose]() {\n\t\tawait this.return();\n\t}\n\t[Symbol.asyncIterator]() {\n\t\treturn this;\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};\n\n//#endregion\nexport { IterableReadableStream, streamWithRetry };\n//# sourceMappingURL=stream.js.map"],"names":[],"mappings":";AAMA,IAAI,4BAA4B,cAAc,MAAM;AAAA,EACnD,YAAY,aAAa,OAAO;AAC/B,UAAM,+CAA+C,WAAW,GAAG;AACnE,SAAK,OAAO;AACZ,SAAK,QAAQ;AAAA,EACd;AACD;AAUA,gBAAgB,gBAAgB,aAAa,UAAU,IAAI;AAC1D,QAAM,aAAa,QAAQ,cAAc;AACzC,MAAI,UAAU;AACd,MAAI;AACJ,MAAI;AACJ,SAAO,MAAM;AACZ,QAAI,cAAc;AAClB,QAAI;AACJ,QAAI;AACJ,QAAI;AACH,UAAI,QAAQ,QAAQ,QAAS;AAC7B,YAAM,EAAE,UAAU,OAAM,IAAK,MAAM,YAAY,gBAAgB;AAAA,QAC9D;AAAA,QACA;AAAA,MACJ,IAAO,MAAM;AACV,YAAM,iBAAiB,SAAS,QAAQ,IAAI,UAAU;AACtD,UAAI,eAAgB,iBAAgB;AACpC,YAAM,cAAc,SAAS,QAAQ,IAAI,cAAc,GAAG,MAAM,GAAG,EAAE,CAAC;AACtE,UAAI,eAAe,CAAC,YAAY,SAAS,mBAAmB,EAAG,OAAM,IAAI,MAAM,8EAA8E,WAAW,GAAG;AAC3K,eAAS,OAAO,UAAS;AACzB,UAAI;AACH,eAAO,MAAM;AACZ,cAAI,QAAQ,QAAQ,SAAS;AAC5B,kBAAM,OAAO,OAAM;AACnB;AAAA,UACD;AACA,gBAAM,EAAE,MAAM,MAAK,IAAK,MAAM,OAAO,KAAI;AACzC,cAAI,KAAM;AACV,cAAI,MAAM,GAAI,eAAc,MAAM;AAClC,gBAAM;AAAA,QACP;AACA;AAAA,MACD,SAAS,OAAO;AACf,YAAI,iBAAiB,CAAC,QAAQ,QAAQ,QAAS,eAAc;AAAA,YACxD,OAAM;AAAA,MACZ,UAAC;AACA,YAAI,OAAQ,KAAI;AACf,iBAAO,YAAW;AAAA,QACnB,QAAQ;AAAA,QAAC;AAAA,MACV;AAAA,IACD,SAAS,OAAO;AACf,kBAAY;AACZ,UAAI,eAAe,KAAK,KAAK,iBAAiB,CAAC,QAAQ,QAAQ,QAAS,eAAc;AAAA,UACjF,OAAM;AAAA,IACZ;AACA,QAAI,aAAa;AAChB,iBAAW;AACX,UAAI,UAAU,WAAY,OAAM,IAAI,0BAA0B,YAAY,SAAS;AACnF,cAAQ,cAAc;AAAA,QACrB;AAAA,QACA;AAAA,QACA,OAAO;AAAA,MACX,CAAI;AACD,YAAM,QAAQ,KAAK,IAAI,MAAM,MAAM,UAAU,IAAI,GAAG,IAAI,KAAK,OAAM,IAAK;AACxE,YAAM,IAAI,QAAQ,CAAC,YAAY;AAC9B,mBAAW,SAAS,KAAK;AAAA,MAC1B,CAAC;AACD;AAAA,IACD;AACA;AAAA,EACD;AACD;","x_google_ignoreList":[0]}
|