langgraph-ui-components 0.0.1 → 0.0.2
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.es.js +9 -27085
- package/dist/index.es.js.map +1 -1
- package/dist/index.es10.js +21 -0
- package/dist/index.es10.js.map +1 -0
- package/dist/index.es100.js +43 -0
- package/dist/index.es100.js.map +1 -0
- package/dist/index.es101.js +94 -0
- package/dist/index.es101.js.map +1 -0
- package/dist/index.es102.js +5 -0
- package/dist/index.es102.js.map +1 -0
- package/dist/index.es103.js +5 -0
- package/dist/index.es103.js.map +1 -0
- package/dist/index.es104.js +25 -0
- package/dist/index.es104.js.map +1 -0
- package/dist/index.es105.js +5 -0
- package/dist/index.es105.js.map +1 -0
- package/dist/index.es106.js +28 -0
- package/dist/index.es106.js.map +1 -0
- package/dist/index.es107.js +8 -0
- package/dist/index.es107.js.map +1 -0
- package/dist/index.es108.js +3 -0
- package/dist/index.es108.js.map +1 -0
- package/dist/index.es109.js +14 -0
- package/dist/index.es109.js.map +1 -0
- package/dist/index.es11.js +125 -0
- package/dist/index.es11.js.map +1 -0
- package/dist/index.es110.js +504 -0
- package/dist/index.es110.js.map +1 -0
- package/dist/index.es111.js +3 -0
- package/dist/index.es111.js.map +1 -0
- package/dist/index.es112.js +149 -0
- package/dist/index.es112.js.map +1 -0
- package/dist/index.es113.js +889 -0
- package/dist/index.es113.js.map +1 -0
- package/dist/index.es114.js +283 -0
- package/dist/index.es114.js.map +1 -0
- package/dist/index.es115.js +5 -0
- package/dist/index.es115.js.map +1 -0
- package/dist/index.es116.js +447 -0
- package/dist/index.es116.js.map +1 -0
- package/dist/index.es117.js +49 -0
- package/dist/index.es117.js.map +1 -0
- package/dist/index.es118.js +25 -0
- package/dist/index.es118.js.map +1 -0
- package/dist/index.es119.js +82 -0
- package/dist/index.es119.js.map +1 -0
- package/dist/index.es12.js +104 -0
- package/dist/index.es12.js.map +1 -0
- package/dist/index.es120.js +132 -0
- package/dist/index.es120.js.map +1 -0
- package/dist/index.es121.js +52 -0
- package/dist/index.es121.js.map +1 -0
- package/dist/index.es122.js +13 -0
- package/dist/index.es122.js.map +1 -0
- package/dist/index.es123.js +48 -0
- package/dist/index.es123.js.map +1 -0
- package/dist/index.es124.js +102 -0
- package/dist/index.es124.js.map +1 -0
- package/dist/index.es125.js +56 -0
- package/dist/index.es125.js.map +1 -0
- package/dist/index.es126.js +5 -0
- package/dist/index.es126.js.map +1 -0
- package/dist/index.es127.js +140 -0
- package/dist/index.es127.js.map +1 -0
- package/dist/index.es128.js +5 -0
- package/dist/index.es128.js.map +1 -0
- package/dist/index.es129.js +18 -0
- package/dist/index.es129.js.map +1 -0
- package/dist/index.es13.js +37 -0
- package/dist/index.es13.js.map +1 -0
- package/dist/index.es130.js +92 -0
- package/dist/index.es130.js.map +1 -0
- package/dist/index.es131.js +5 -0
- package/dist/index.es131.js.map +1 -0
- package/dist/index.es132.js +59 -0
- package/dist/index.es132.js.map +1 -0
- package/dist/index.es133.js +103 -0
- package/dist/index.es133.js.map +1 -0
- package/dist/index.es134.js +194 -0
- package/dist/index.es134.js.map +1 -0
- package/dist/index.es135.js +113 -0
- package/dist/index.es135.js.map +1 -0
- package/dist/index.es136.js +38 -0
- package/dist/index.es136.js.map +1 -0
- package/dist/index.es137.js +13 -0
- package/dist/index.es137.js.map +1 -0
- package/dist/index.es138.js +14 -0
- package/dist/index.es138.js.map +1 -0
- package/dist/index.es139.js +15 -0
- package/dist/index.es139.js.map +1 -0
- package/dist/index.es14.js +148 -0
- package/dist/index.es14.js.map +1 -0
- package/dist/index.es140.js +94 -0
- package/dist/index.es140.js.map +1 -0
- package/dist/index.es141.js +38 -0
- package/dist/index.es141.js.map +1 -0
- package/dist/index.es142.js +43 -0
- package/dist/index.es142.js.map +1 -0
- package/dist/index.es143.js +27 -0
- package/dist/index.es143.js.map +1 -0
- package/dist/index.es144.js +594 -0
- package/dist/index.es144.js.map +1 -0
- package/dist/index.es145.js +128 -0
- package/dist/index.es145.js.map +1 -0
- package/dist/index.es146.js +7 -0
- package/dist/index.es146.js.map +1 -0
- package/dist/index.es147.js +8 -0
- package/dist/index.es147.js.map +1 -0
- package/dist/index.es148.js +16 -0
- package/dist/index.es148.js.map +1 -0
- package/dist/index.es149.js +9 -0
- package/dist/index.es149.js.map +1 -0
- package/dist/index.es15.js +15 -0
- package/dist/index.es15.js.map +1 -0
- package/dist/index.es150.js +11 -0
- package/dist/index.es150.js.map +1 -0
- package/dist/index.es151.js +28 -0
- package/dist/index.es151.js.map +1 -0
- package/dist/index.es152.js +15 -0
- package/dist/index.es152.js.map +1 -0
- package/dist/index.es153.js +57 -0
- package/dist/index.es153.js.map +1 -0
- package/dist/index.es154.js +67 -0
- package/dist/index.es154.js.map +1 -0
- package/dist/index.es155.js +25 -0
- package/dist/index.es155.js.map +1 -0
- package/dist/index.es156.js +9 -0
- package/dist/index.es156.js.map +1 -0
- package/dist/index.es157.js +352 -0
- package/dist/index.es157.js.map +1 -0
- package/dist/index.es158.js +10 -0
- package/dist/index.es158.js.map +1 -0
- package/dist/index.es159.js +106 -0
- package/dist/index.es159.js.map +1 -0
- package/dist/index.es16.js +8 -0
- package/dist/index.es16.js.map +1 -0
- package/dist/index.es160.js +122 -0
- package/dist/index.es160.js.map +1 -0
- package/dist/index.es161.js +139 -0
- package/dist/index.es161.js.map +1 -0
- package/dist/index.es162.js +118 -0
- package/dist/index.es162.js.map +1 -0
- package/dist/index.es163.js +9 -0
- package/dist/index.es163.js.map +1 -0
- package/dist/index.es164.js +145 -0
- package/dist/index.es164.js.map +1 -0
- package/dist/index.es165.js +5 -0
- package/dist/index.es165.js.map +1 -0
- package/dist/index.es166.js +3685 -0
- package/dist/index.es166.js.map +1 -0
- package/dist/index.es167.js +345 -0
- package/dist/index.es167.js.map +1 -0
- package/dist/index.es168.js +112 -0
- package/dist/index.es168.js.map +1 -0
- package/dist/index.es169.js +136 -0
- package/dist/index.es169.js.map +1 -0
- package/dist/index.es17.js +36 -0
- package/dist/index.es17.js.map +1 -0
- package/dist/index.es170.js +18 -0
- package/dist/index.es170.js.map +1 -0
- package/dist/index.es171.js +155 -0
- package/dist/index.es171.js.map +1 -0
- package/dist/index.es172.js +18 -0
- package/dist/index.es172.js.map +1 -0
- package/dist/index.es173.js +11 -0
- package/dist/index.es173.js.map +1 -0
- package/dist/index.es174.js +24 -0
- package/dist/index.es174.js.map +1 -0
- package/dist/index.es175.js +93 -0
- package/dist/index.es175.js.map +1 -0
- package/dist/index.es176.js +27 -0
- package/dist/index.es176.js.map +1 -0
- package/dist/index.es177.js +9 -0
- package/dist/index.es177.js.map +1 -0
- package/dist/index.es178.js +7 -0
- package/dist/index.es178.js.map +1 -0
- package/dist/index.es179.js +21 -0
- package/dist/index.es179.js.map +1 -0
- package/dist/index.es18.js +126 -0
- package/dist/index.es18.js.map +1 -0
- package/dist/index.es180.js +35 -0
- package/dist/index.es180.js.map +1 -0
- package/dist/index.es181.js +9 -0
- package/dist/index.es181.js.map +1 -0
- package/dist/index.es182.js +109 -0
- package/dist/index.es182.js.map +1 -0
- package/dist/index.es183.js +16 -0
- package/dist/index.es183.js.map +1 -0
- package/dist/index.es184.js +21 -0
- package/dist/index.es184.js.map +1 -0
- package/dist/index.es185.js +34 -0
- package/dist/index.es185.js.map +1 -0
- package/dist/index.es186.js +7 -0
- package/dist/index.es186.js.map +1 -0
- package/dist/index.es187.js +8 -0
- package/dist/index.es187.js.map +1 -0
- package/dist/index.es188.js +8 -0
- package/dist/index.es188.js.map +1 -0
- package/dist/index.es189.js +40 -0
- package/dist/index.es189.js.map +1 -0
- package/dist/index.es19.js +41 -0
- package/dist/index.es19.js.map +1 -0
- package/dist/index.es190.js +11 -0
- package/dist/index.es190.js.map +1 -0
- package/dist/index.es191.js +9 -0
- package/dist/index.es191.js.map +1 -0
- package/dist/index.es192.js +10 -0
- package/dist/index.es192.js.map +1 -0
- package/dist/index.es193.js +45 -0
- package/dist/index.es193.js.map +1 -0
- package/dist/index.es194.js +16 -0
- package/dist/index.es194.js.map +1 -0
- package/dist/index.es195.js +245 -0
- package/dist/index.es195.js.map +1 -0
- package/dist/index.es196.js +54 -0
- package/dist/index.es196.js.map +1 -0
- package/dist/index.es197.js +38 -0
- package/dist/index.es197.js.map +1 -0
- package/dist/index.es198.js +16 -0
- package/dist/index.es198.js.map +1 -0
- package/dist/index.es199.js +11 -0
- package/dist/index.es199.js.map +1 -0
- package/dist/index.es2.js +142 -0
- package/dist/index.es2.js.map +1 -0
- package/dist/index.es20.js +46 -0
- package/dist/index.es20.js.map +1 -0
- package/dist/index.es200.js +10 -0
- package/dist/index.es200.js.map +1 -0
- package/dist/index.es201.js +68 -0
- package/dist/index.es201.js.map +1 -0
- package/dist/index.es202.js +44 -0
- package/dist/index.es202.js.map +1 -0
- package/dist/index.es203.js +35 -0
- package/dist/index.es203.js.map +1 -0
- package/dist/index.es204.js +65 -0
- package/dist/index.es204.js.map +1 -0
- package/dist/index.es205.js +18 -0
- package/dist/index.es205.js.map +1 -0
- package/dist/index.es206.js +26 -0
- package/dist/index.es206.js.map +1 -0
- package/dist/index.es207.js +8 -0
- package/dist/index.es207.js.map +1 -0
- package/dist/index.es208.js +20 -0
- package/dist/index.es208.js.map +1 -0
- package/dist/index.es209.js +36 -0
- package/dist/index.es209.js.map +1 -0
- package/dist/index.es21.js +21 -0
- package/dist/index.es21.js.map +1 -0
- package/dist/index.es210.js +8 -0
- package/dist/index.es210.js.map +1 -0
- package/dist/index.es211.js +8 -0
- package/dist/index.es211.js.map +1 -0
- package/dist/index.es212.js +8 -0
- package/dist/index.es212.js.map +1 -0
- package/dist/index.es213.js +11 -0
- package/dist/index.es213.js.map +1 -0
- package/dist/index.es214.js +95 -0
- package/dist/index.es214.js.map +1 -0
- package/dist/index.es215.js +21 -0
- package/dist/index.es215.js.map +1 -0
- package/dist/index.es216.js +765 -0
- package/dist/index.es216.js.map +1 -0
- package/dist/index.es217.js +69 -0
- package/dist/index.es217.js.map +1 -0
- package/dist/index.es218.js +177 -0
- package/dist/index.es218.js.map +1 -0
- package/dist/index.es219.js +41 -0
- package/dist/index.es219.js.map +1 -0
- package/dist/index.es22.js +76 -0
- package/dist/index.es22.js.map +1 -0
- package/dist/index.es220.js +140 -0
- package/dist/index.es220.js.map +1 -0
- package/dist/index.es221.js +96 -0
- package/dist/index.es221.js.map +1 -0
- package/dist/index.es222.js +36 -0
- package/dist/index.es222.js.map +1 -0
- package/dist/index.es223.js +288 -0
- package/dist/index.es223.js.map +1 -0
- package/dist/index.es224.js +29 -0
- package/dist/index.es224.js.map +1 -0
- package/dist/index.es225.js +27 -0
- package/dist/index.es225.js.map +1 -0
- package/dist/index.es226.js +18 -0
- package/dist/index.es226.js.map +1 -0
- package/dist/index.es227.js +18 -0
- package/dist/index.es227.js.map +1 -0
- package/dist/index.es228.js +29 -0
- package/dist/index.es228.js.map +1 -0
- package/dist/index.es229.js +49 -0
- package/dist/index.es229.js.map +1 -0
- package/dist/index.es23.js +34 -0
- package/dist/index.es23.js.map +1 -0
- package/dist/index.es230.js +15 -0
- package/dist/index.es230.js.map +1 -0
- package/dist/index.es231.js +15 -0
- package/dist/index.es231.js.map +1 -0
- package/dist/index.es232.js +15 -0
- package/dist/index.es232.js.map +1 -0
- package/dist/index.es233.js +18 -0
- package/dist/index.es233.js.map +1 -0
- package/dist/index.es234.js +15 -0
- package/dist/index.es234.js.map +1 -0
- package/dist/index.es235.js +15 -0
- package/dist/index.es235.js.map +1 -0
- package/dist/index.es236.js +15 -0
- package/dist/index.es236.js.map +1 -0
- package/dist/index.es237.js +19 -0
- package/dist/index.es237.js.map +1 -0
- package/dist/index.es238.js +15 -0
- package/dist/index.es238.js.map +1 -0
- package/dist/index.es239.js +15 -0
- package/dist/index.es239.js.map +1 -0
- package/dist/index.es24.js +97 -0
- package/dist/index.es24.js.map +1 -0
- package/dist/index.es240.js +15 -0
- package/dist/index.es240.js.map +1 -0
- package/dist/index.es241.js +15 -0
- package/dist/index.es241.js.map +1 -0
- package/dist/index.es242.js +15 -0
- package/dist/index.es242.js.map +1 -0
- package/dist/index.es243.js +15 -0
- package/dist/index.es243.js.map +1 -0
- package/dist/index.es244.js +15 -0
- package/dist/index.es244.js.map +1 -0
- package/dist/index.es245.js +15 -0
- package/dist/index.es245.js.map +1 -0
- package/dist/index.es246.js +60 -0
- package/dist/index.es246.js.map +1 -0
- package/dist/index.es247.js +53 -0
- package/dist/index.es247.js.map +1 -0
- package/dist/index.es248.js +123 -0
- package/dist/index.es248.js.map +1 -0
- package/dist/index.es249.js +388 -0
- package/dist/index.es249.js.map +1 -0
- package/dist/index.es25.js +74 -0
- package/dist/index.es25.js.map +1 -0
- package/dist/index.es250.js +22 -0
- package/dist/index.es250.js.map +1 -0
- package/dist/index.es251.js +15 -0
- package/dist/index.es251.js.map +1 -0
- package/dist/index.es252.js +35 -0
- package/dist/index.es252.js.map +1 -0
- package/dist/index.es253.js +35 -0
- package/dist/index.es253.js.map +1 -0
- package/dist/index.es254.js +66 -0
- package/dist/index.es254.js.map +1 -0
- package/dist/index.es255.js +21 -0
- package/dist/index.es255.js.map +1 -0
- package/dist/index.es256.js +81 -0
- package/dist/index.es256.js.map +1 -0
- package/dist/index.es257.js +15 -0
- package/dist/index.es257.js.map +1 -0
- package/dist/index.es258.js +15 -0
- package/dist/index.es258.js.map +1 -0
- package/dist/index.es259.js +19 -0
- package/dist/index.es259.js.map +1 -0
- package/dist/index.es26.js +180 -0
- package/dist/index.es26.js.map +1 -0
- package/dist/index.es260.js +56 -0
- package/dist/index.es260.js.map +1 -0
- package/dist/index.es261.js +170 -0
- package/dist/index.es261.js.map +1 -0
- package/dist/index.es262.js +5 -0
- package/dist/index.es262.js.map +1 -0
- package/dist/index.es263.js +14 -0
- package/dist/index.es263.js.map +1 -0
- package/dist/index.es264.js +23 -0
- package/dist/index.es264.js.map +1 -0
- package/dist/index.es265.js +42 -0
- package/dist/index.es265.js.map +1 -0
- package/dist/index.es27.js +16 -0
- package/dist/index.es27.js.map +1 -0
- package/dist/index.es28.js +441 -0
- package/dist/index.es28.js.map +1 -0
- package/dist/index.es29.js +122 -0
- package/dist/index.es29.js.map +1 -0
- package/dist/index.es3.js +30 -0
- package/dist/index.es3.js.map +1 -0
- package/dist/index.es30.js +77 -0
- package/dist/index.es30.js.map +1 -0
- package/dist/index.es31.js +15 -0
- package/dist/index.es31.js.map +1 -0
- package/dist/index.es32.js +262 -0
- package/dist/index.es32.js.map +1 -0
- package/dist/index.es33.js +47 -0
- package/dist/index.es33.js.map +1 -0
- package/dist/index.es34.js +215 -0
- package/dist/index.es34.js.map +1 -0
- package/dist/index.es35.js +71 -0
- package/dist/index.es35.js.map +1 -0
- package/dist/index.es36.js +146 -0
- package/dist/index.es36.js.map +1 -0
- package/dist/index.es37.js +28 -0
- package/dist/index.es37.js.map +1 -0
- package/dist/index.es38.js +228 -0
- package/dist/index.es38.js.map +1 -0
- package/dist/index.es39.js +13 -0
- package/dist/index.es39.js.map +1 -0
- package/dist/index.es4.js +30 -0
- package/dist/index.es4.js.map +1 -0
- package/dist/index.es40.js +1203 -0
- package/dist/index.es40.js.map +1 -0
- package/dist/index.es41.js +12 -0
- package/dist/index.es41.js.map +1 -0
- package/dist/index.es42.js +151 -0
- package/dist/index.es42.js.map +1 -0
- package/dist/index.es43.js +18 -0
- package/dist/index.es43.js.map +1 -0
- package/dist/index.es44.js +11 -0
- package/dist/index.es44.js.map +1 -0
- package/dist/index.es45.js +97 -0
- package/dist/index.es45.js.map +1 -0
- package/dist/index.es46.js +7 -0
- package/dist/index.es46.js.map +1 -0
- package/dist/index.es47.js +39 -0
- package/dist/index.es47.js.map +1 -0
- package/dist/index.es48.js +75 -0
- package/dist/index.es48.js.map +1 -0
- package/dist/index.es49.js +41 -0
- package/dist/index.es49.js.map +1 -0
- package/dist/index.es5.js +26 -0
- package/dist/index.es5.js.map +1 -0
- package/dist/index.es50.js +309 -0
- package/dist/index.es50.js.map +1 -0
- package/dist/index.es51.js +12 -0
- package/dist/index.es51.js.map +1 -0
- package/dist/index.es52.js +88 -0
- package/dist/index.es52.js.map +1 -0
- package/dist/index.es53.js +11 -0
- package/dist/index.es53.js.map +1 -0
- package/dist/index.es54.js +18 -0
- package/dist/index.es54.js.map +1 -0
- package/dist/index.es55.js +144 -0
- package/dist/index.es55.js.map +1 -0
- package/dist/index.es56.js +303 -0
- package/dist/index.es56.js.map +1 -0
- package/dist/index.es57.js +69 -0
- package/dist/index.es57.js.map +1 -0
- package/dist/index.es58.js +216 -0
- package/dist/index.es58.js.map +1 -0
- package/dist/index.es59.js +37 -0
- package/dist/index.es59.js.map +1 -0
- package/dist/index.es6.js +122 -0
- package/dist/index.es6.js.map +1 -0
- package/dist/index.es60.js +12 -0
- package/dist/index.es60.js.map +1 -0
- package/dist/index.es61.js +15 -0
- package/dist/index.es61.js.map +1 -0
- package/dist/index.es62.js +190 -0
- package/dist/index.es62.js.map +1 -0
- package/dist/index.es63.js +19 -0
- package/dist/index.es63.js.map +1 -0
- package/dist/index.es64.js +1403 -0
- package/dist/index.es64.js.map +1 -0
- package/dist/index.es65.js +12 -0
- package/dist/index.es65.js.map +1 -0
- package/dist/index.es66.js +11 -0
- package/dist/index.es66.js.map +1 -0
- package/dist/index.es67.js +9 -0
- package/dist/index.es67.js.map +1 -0
- package/dist/index.es68.js +8 -0
- package/dist/index.es68.js.map +1 -0
- package/dist/index.es69.js +8 -0
- package/dist/index.es69.js.map +1 -0
- package/dist/index.es7.js +19 -0
- package/dist/index.es7.js.map +1 -0
- package/dist/index.es70.js +15 -0
- package/dist/index.es70.js.map +1 -0
- package/dist/index.es71.js +26 -0
- package/dist/index.es71.js.map +1 -0
- package/dist/index.es72.js +37 -0
- package/dist/index.es72.js.map +1 -0
- package/dist/index.es73.js +235 -0
- package/dist/index.es73.js.map +1 -0
- package/dist/index.es74.js +71 -0
- package/dist/index.es74.js.map +1 -0
- package/dist/index.es75.js +72 -0
- package/dist/index.es75.js.map +1 -0
- package/dist/index.es76.js +60 -0
- package/dist/index.es76.js.map +1 -0
- package/dist/index.es77.js +16 -0
- package/dist/index.es77.js.map +1 -0
- package/dist/index.es78.js +140 -0
- package/dist/index.es78.js.map +1 -0
- package/dist/index.es79.js +24 -0
- package/dist/index.es79.js.map +1 -0
- package/dist/index.es8.js +61 -0
- package/dist/index.es8.js.map +1 -0
- package/dist/index.es80.js +185 -0
- package/dist/index.es80.js.map +1 -0
- package/dist/index.es81.js +244 -0
- package/dist/index.es81.js.map +1 -0
- package/dist/index.es82.js +358 -0
- package/dist/index.es82.js.map +1 -0
- package/dist/index.es83.js +140 -0
- package/dist/index.es83.js.map +1 -0
- package/dist/index.es84.js +73 -0
- package/dist/index.es84.js.map +1 -0
- package/dist/index.es85.js +40 -0
- package/dist/index.es85.js.map +1 -0
- package/dist/index.es86.js +40 -0
- package/dist/index.es86.js.map +1 -0
- package/dist/index.es87.js +169 -0
- package/dist/index.es87.js.map +1 -0
- package/dist/index.es88.js +206 -0
- package/dist/index.es88.js.map +1 -0
- package/dist/index.es89.js +17 -0
- package/dist/index.es89.js.map +1 -0
- package/dist/index.es9.js +109 -0
- package/dist/index.es9.js.map +1 -0
- package/dist/index.es90.js +33 -0
- package/dist/index.es90.js.map +1 -0
- package/dist/index.es91.js +37 -0
- package/dist/index.es91.js.map +1 -0
- package/dist/index.es92.js +3160 -0
- package/dist/index.es92.js.map +1 -0
- package/dist/index.es93.js +84 -0
- package/dist/index.es93.js.map +1 -0
- package/dist/index.es94.js +5 -0
- package/dist/index.es94.js.map +1 -0
- package/dist/index.es95.js +13 -0
- package/dist/index.es95.js.map +1 -0
- package/dist/index.es96.js +278 -0
- package/dist/index.es96.js.map +1 -0
- package/dist/index.es97.js +5 -0
- package/dist/index.es97.js.map +1 -0
- package/dist/index.es98.js +167 -0
- package/dist/index.es98.js.map +1 -0
- package/dist/index.es99.js +54 -0
- package/dist/index.es99.js.map +1 -0
- package/dist/styles.css +1 -1
- package/package.json +12 -10
|
@@ -0,0 +1,441 @@
|
|
|
1
|
+
import { Client, getClientConfigHash } from "./index.es40.js";
|
|
2
|
+
import { findLast, unique } from "./index.es41.js";
|
|
3
|
+
import { StreamError } from "./index.es39.js";
|
|
4
|
+
import { getBranchContext } from "./index.es42.js";
|
|
5
|
+
import { MessageTupleManager } from "./index.es25.js";
|
|
6
|
+
import { StreamManager } from "./index.es26.js";
|
|
7
|
+
import { useControllableThreadId } from "./index.es27.js";
|
|
8
|
+
import { useRef, useMemo, useState, useSyncExternalStore, useCallback, useEffect } from "react";
|
|
9
|
+
function getFetchHistoryKey(client, threadId, limit) {
|
|
10
|
+
return [
|
|
11
|
+
getClientConfigHash(client),
|
|
12
|
+
threadId,
|
|
13
|
+
limit
|
|
14
|
+
].join(":");
|
|
15
|
+
}
|
|
16
|
+
function fetchHistory(client, threadId, options) {
|
|
17
|
+
if (options?.limit === false) return client.threads.getState(threadId).then((state) => {
|
|
18
|
+
if (state.checkpoint == null) return [];
|
|
19
|
+
return [state];
|
|
20
|
+
});
|
|
21
|
+
const limit = typeof options?.limit === "number" ? options.limit : 10;
|
|
22
|
+
return client.threads.getHistory(threadId, { limit });
|
|
23
|
+
}
|
|
24
|
+
function useThreadHistory(client, threadId, limit, options) {
|
|
25
|
+
const key = getFetchHistoryKey(client, threadId, limit);
|
|
26
|
+
const [state, setState] = useState(() => ({
|
|
27
|
+
key: void 0,
|
|
28
|
+
data: void 0,
|
|
29
|
+
error: void 0,
|
|
30
|
+
isLoading: threadId != null
|
|
31
|
+
}));
|
|
32
|
+
const clientRef = useRef(client);
|
|
33
|
+
clientRef.current = client;
|
|
34
|
+
const onErrorRef = useRef(options?.onError);
|
|
35
|
+
onErrorRef.current = options?.onError;
|
|
36
|
+
const fetcher = useCallback((threadId$1, limit$1) => {
|
|
37
|
+
if (options.passthrough) return Promise.resolve([]);
|
|
38
|
+
const client$1 = clientRef.current;
|
|
39
|
+
const key$1 = getFetchHistoryKey(client$1, threadId$1, limit$1);
|
|
40
|
+
if (threadId$1 != null) {
|
|
41
|
+
setState((state$1) => {
|
|
42
|
+
if (state$1.key === key$1) return {
|
|
43
|
+
...state$1,
|
|
44
|
+
isLoading: true
|
|
45
|
+
};
|
|
46
|
+
return {
|
|
47
|
+
key: key$1,
|
|
48
|
+
data: void 0,
|
|
49
|
+
error: void 0,
|
|
50
|
+
isLoading: true
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
return fetchHistory(client$1, threadId$1, { limit: limit$1 }).then((data) => {
|
|
54
|
+
setState((state$1) => {
|
|
55
|
+
if (state$1.key !== key$1) return state$1;
|
|
56
|
+
return {
|
|
57
|
+
key: key$1,
|
|
58
|
+
data,
|
|
59
|
+
error: void 0,
|
|
60
|
+
isLoading: false
|
|
61
|
+
};
|
|
62
|
+
});
|
|
63
|
+
return data;
|
|
64
|
+
}, (error) => {
|
|
65
|
+
setState((state$1) => {
|
|
66
|
+
if (state$1.key !== key$1) return state$1;
|
|
67
|
+
return {
|
|
68
|
+
key: key$1,
|
|
69
|
+
data: state$1.data,
|
|
70
|
+
error,
|
|
71
|
+
isLoading: false
|
|
72
|
+
};
|
|
73
|
+
});
|
|
74
|
+
onErrorRef.current?.(error);
|
|
75
|
+
return Promise.reject(error);
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
setState({
|
|
79
|
+
key: key$1,
|
|
80
|
+
data: void 0,
|
|
81
|
+
error: void 0,
|
|
82
|
+
isLoading: false
|
|
83
|
+
});
|
|
84
|
+
return Promise.resolve([]);
|
|
85
|
+
}, [options.passthrough]);
|
|
86
|
+
useEffect(() => {
|
|
87
|
+
if (options.submittingRef.current != null && options.submittingRef.current === threadId) return;
|
|
88
|
+
fetcher(threadId, limit);
|
|
89
|
+
}, [fetcher, key]);
|
|
90
|
+
return {
|
|
91
|
+
data: state.data,
|
|
92
|
+
error: state.error,
|
|
93
|
+
isLoading: state.isLoading,
|
|
94
|
+
mutate: (mutateId) => fetcher(mutateId ?? threadId, limit)
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function useStreamLGP(options) {
|
|
98
|
+
const reconnectOnMountRef = useRef(options.reconnectOnMount);
|
|
99
|
+
const runMetadataStorage = useMemo(() => {
|
|
100
|
+
if (typeof window === "undefined") return null;
|
|
101
|
+
const storage = reconnectOnMountRef.current;
|
|
102
|
+
if (storage === true) return window.sessionStorage;
|
|
103
|
+
if (typeof storage === "function") return storage();
|
|
104
|
+
return null;
|
|
105
|
+
}, []);
|
|
106
|
+
const client = useMemo(() => options.client ?? new Client({
|
|
107
|
+
apiUrl: options.apiUrl,
|
|
108
|
+
apiKey: options.apiKey,
|
|
109
|
+
callerOptions: options.callerOptions,
|
|
110
|
+
defaultHeaders: options.defaultHeaders
|
|
111
|
+
}), [
|
|
112
|
+
options.client,
|
|
113
|
+
options.apiKey,
|
|
114
|
+
options.apiUrl,
|
|
115
|
+
options.callerOptions,
|
|
116
|
+
options.defaultHeaders
|
|
117
|
+
]);
|
|
118
|
+
const [messageManager] = useState(() => new MessageTupleManager());
|
|
119
|
+
const [stream] = useState(() => new StreamManager(messageManager, { throttle: options.throttle ?? false }));
|
|
120
|
+
useSyncExternalStore(stream.subscribe, stream.getSnapshot, stream.getSnapshot);
|
|
121
|
+
const [threadId, onThreadId] = useControllableThreadId(options);
|
|
122
|
+
const trackStreamModeRef = useRef([]);
|
|
123
|
+
const trackStreamMode = useCallback((...mode) => {
|
|
124
|
+
const ref = trackStreamModeRef.current;
|
|
125
|
+
for (const m of mode) if (!ref.includes(m)) ref.push(m);
|
|
126
|
+
}, []);
|
|
127
|
+
const hasUpdateListener = options.onUpdateEvent != null;
|
|
128
|
+
const hasCustomListener = options.onCustomEvent != null;
|
|
129
|
+
const hasLangChainListener = options.onLangChainEvent != null;
|
|
130
|
+
const hasDebugListener = options.onDebugEvent != null;
|
|
131
|
+
const hasCheckpointListener = options.onCheckpointEvent != null;
|
|
132
|
+
const hasTaskListener = options.onTaskEvent != null;
|
|
133
|
+
const callbackStreamMode = useMemo(() => {
|
|
134
|
+
const modes = [];
|
|
135
|
+
if (hasUpdateListener) modes.push("updates");
|
|
136
|
+
if (hasCustomListener) modes.push("custom");
|
|
137
|
+
if (hasLangChainListener) modes.push("events");
|
|
138
|
+
if (hasDebugListener) modes.push("debug");
|
|
139
|
+
if (hasCheckpointListener) modes.push("checkpoints");
|
|
140
|
+
if (hasTaskListener) modes.push("tasks");
|
|
141
|
+
return modes;
|
|
142
|
+
}, [
|
|
143
|
+
hasUpdateListener,
|
|
144
|
+
hasCustomListener,
|
|
145
|
+
hasLangChainListener,
|
|
146
|
+
hasDebugListener,
|
|
147
|
+
hasCheckpointListener,
|
|
148
|
+
hasTaskListener
|
|
149
|
+
]);
|
|
150
|
+
const threadIdRef = useRef(threadId);
|
|
151
|
+
const threadIdStreamingRef = useRef(null);
|
|
152
|
+
useEffect(() => {
|
|
153
|
+
if (threadIdRef.current !== threadId) {
|
|
154
|
+
threadIdRef.current = threadId;
|
|
155
|
+
stream.clear();
|
|
156
|
+
}
|
|
157
|
+
}, [threadId, stream]);
|
|
158
|
+
const historyLimit = typeof options.fetchStateHistory === "object" && options.fetchStateHistory != null ? options.fetchStateHistory.limit ?? false : options.fetchStateHistory ?? false;
|
|
159
|
+
const builtInHistory = useThreadHistory(client, threadId, historyLimit, {
|
|
160
|
+
passthrough: options.thread != null,
|
|
161
|
+
submittingRef: threadIdStreamingRef,
|
|
162
|
+
onError: options.onError
|
|
163
|
+
});
|
|
164
|
+
const history = options.thread ?? builtInHistory;
|
|
165
|
+
const getMessages = (value) => {
|
|
166
|
+
const messagesKey = options.messagesKey ?? "messages";
|
|
167
|
+
return Array.isArray(value[messagesKey]) ? value[messagesKey] : [];
|
|
168
|
+
};
|
|
169
|
+
const setMessages = (current, messages) => {
|
|
170
|
+
const messagesKey = options.messagesKey ?? "messages";
|
|
171
|
+
return {
|
|
172
|
+
...current,
|
|
173
|
+
[messagesKey]: messages
|
|
174
|
+
};
|
|
175
|
+
};
|
|
176
|
+
const [branch, setBranch] = useState("");
|
|
177
|
+
const branchContext = getBranchContext(branch, history.data ?? void 0);
|
|
178
|
+
const historyValues = branchContext.threadHead?.values ?? options.initialValues ?? {};
|
|
179
|
+
const historyError = (() => {
|
|
180
|
+
const error$1 = branchContext.threadHead?.tasks?.at(-1)?.error;
|
|
181
|
+
if (error$1 == null) return void 0;
|
|
182
|
+
try {
|
|
183
|
+
const parsed = JSON.parse(error$1);
|
|
184
|
+
if (StreamError.isStructuredError(parsed)) return new StreamError(parsed);
|
|
185
|
+
return parsed;
|
|
186
|
+
} catch {
|
|
187
|
+
}
|
|
188
|
+
return error$1;
|
|
189
|
+
})();
|
|
190
|
+
const messageMetadata = (() => {
|
|
191
|
+
const alreadyShown = /* @__PURE__ */ new Set();
|
|
192
|
+
return getMessages(historyValues).map((message, idx) => {
|
|
193
|
+
const messageId = message.id ?? idx;
|
|
194
|
+
const firstSeenState = findLast(history.data ?? [], (state) => getMessages(state.values).map((m, idx$1) => m.id ?? idx$1).includes(messageId));
|
|
195
|
+
const checkpointId = firstSeenState?.checkpoint?.checkpoint_id;
|
|
196
|
+
let branch$1 = checkpointId != null ? branchContext.branchByCheckpoint[checkpointId] : void 0;
|
|
197
|
+
if (!branch$1?.branch?.length) branch$1 = void 0;
|
|
198
|
+
const optionsShown = branch$1?.branchOptions?.flat(2).join(",");
|
|
199
|
+
if (optionsShown) {
|
|
200
|
+
if (alreadyShown.has(optionsShown)) branch$1 = void 0;
|
|
201
|
+
alreadyShown.add(optionsShown);
|
|
202
|
+
}
|
|
203
|
+
return {
|
|
204
|
+
messageId: messageId.toString(),
|
|
205
|
+
firstSeenState,
|
|
206
|
+
branch: branch$1?.branch,
|
|
207
|
+
branchOptions: branch$1?.branchOptions
|
|
208
|
+
};
|
|
209
|
+
});
|
|
210
|
+
})();
|
|
211
|
+
const stop = () => stream.stop(historyValues, { onStop: (args) => {
|
|
212
|
+
if (runMetadataStorage && threadId) {
|
|
213
|
+
const runId = runMetadataStorage.getItem(`lg:stream:${threadId}`);
|
|
214
|
+
if (runId) client.runs.cancel(threadId, runId);
|
|
215
|
+
runMetadataStorage.removeItem(`lg:stream:${threadId}`);
|
|
216
|
+
}
|
|
217
|
+
options.onStop?.(args);
|
|
218
|
+
} });
|
|
219
|
+
const submit = async (values$1, submitOptions) => {
|
|
220
|
+
const checkpointId = submitOptions?.checkpoint?.checkpoint_id;
|
|
221
|
+
setBranch(checkpointId != null ? branchContext.branchByCheckpoint[checkpointId]?.branch ?? "" : "");
|
|
222
|
+
const includeImplicitBranch = historyLimit === true || typeof historyLimit === "number";
|
|
223
|
+
const shouldRefetch = options.onFinish != null || includeImplicitBranch;
|
|
224
|
+
let callbackMeta;
|
|
225
|
+
let rejoinKey;
|
|
226
|
+
let usableThreadId = threadId;
|
|
227
|
+
await stream.start(async (signal) => {
|
|
228
|
+
stream.setStreamValues((values$2) => {
|
|
229
|
+
const prev = {
|
|
230
|
+
...historyValues,
|
|
231
|
+
...values$2 ?? {}
|
|
232
|
+
};
|
|
233
|
+
if (submitOptions?.optimisticValues != null) return {
|
|
234
|
+
...prev,
|
|
235
|
+
...typeof submitOptions.optimisticValues === "function" ? submitOptions.optimisticValues(prev) : submitOptions.optimisticValues
|
|
236
|
+
};
|
|
237
|
+
return { ...prev };
|
|
238
|
+
});
|
|
239
|
+
if (!usableThreadId) {
|
|
240
|
+
const thread = await client.threads.create({
|
|
241
|
+
threadId: submitOptions?.threadId,
|
|
242
|
+
metadata: submitOptions?.metadata,
|
|
243
|
+
signal
|
|
244
|
+
});
|
|
245
|
+
usableThreadId = thread.thread_id;
|
|
246
|
+
threadIdRef.current = usableThreadId;
|
|
247
|
+
threadIdStreamingRef.current = usableThreadId;
|
|
248
|
+
onThreadId(usableThreadId);
|
|
249
|
+
}
|
|
250
|
+
if (!usableThreadId) throw new Error("Failed to obtain valid thread ID.");
|
|
251
|
+
threadIdStreamingRef.current = usableThreadId;
|
|
252
|
+
const streamMode = unique([
|
|
253
|
+
...submitOptions?.streamMode ?? [],
|
|
254
|
+
...trackStreamModeRef.current,
|
|
255
|
+
...callbackStreamMode
|
|
256
|
+
]);
|
|
257
|
+
let checkpoint = submitOptions?.checkpoint ?? (includeImplicitBranch ? branchContext.threadHead?.checkpoint : void 0) ?? void 0;
|
|
258
|
+
if (submitOptions?.checkpoint === null) checkpoint = void 0;
|
|
259
|
+
if (checkpoint != null) delete checkpoint.thread_id;
|
|
260
|
+
const streamResumable = submitOptions?.streamResumable ?? !!runMetadataStorage;
|
|
261
|
+
return client.runs.stream(usableThreadId, options.assistantId, {
|
|
262
|
+
input: values$1,
|
|
263
|
+
config: submitOptions?.config,
|
|
264
|
+
context: submitOptions?.context,
|
|
265
|
+
command: submitOptions?.command,
|
|
266
|
+
interruptBefore: submitOptions?.interruptBefore,
|
|
267
|
+
interruptAfter: submitOptions?.interruptAfter,
|
|
268
|
+
metadata: submitOptions?.metadata,
|
|
269
|
+
multitaskStrategy: submitOptions?.multitaskStrategy,
|
|
270
|
+
onCompletion: submitOptions?.onCompletion,
|
|
271
|
+
onDisconnect: submitOptions?.onDisconnect ?? (streamResumable ? "continue" : "cancel"),
|
|
272
|
+
signal,
|
|
273
|
+
checkpoint,
|
|
274
|
+
streamMode,
|
|
275
|
+
streamSubgraphs: submitOptions?.streamSubgraphs,
|
|
276
|
+
streamResumable,
|
|
277
|
+
durability: submitOptions?.durability,
|
|
278
|
+
onRunCreated(params) {
|
|
279
|
+
callbackMeta = {
|
|
280
|
+
run_id: params.run_id,
|
|
281
|
+
thread_id: params.thread_id ?? usableThreadId
|
|
282
|
+
};
|
|
283
|
+
if (runMetadataStorage) {
|
|
284
|
+
rejoinKey = `lg:stream:${usableThreadId}`;
|
|
285
|
+
runMetadataStorage.setItem(rejoinKey, callbackMeta.run_id);
|
|
286
|
+
}
|
|
287
|
+
options.onCreated?.(callbackMeta);
|
|
288
|
+
}
|
|
289
|
+
});
|
|
290
|
+
}, {
|
|
291
|
+
getMessages,
|
|
292
|
+
setMessages,
|
|
293
|
+
initialValues: historyValues,
|
|
294
|
+
callbacks: options,
|
|
295
|
+
async onSuccess() {
|
|
296
|
+
if (rejoinKey) runMetadataStorage?.removeItem(rejoinKey);
|
|
297
|
+
if (shouldRefetch) {
|
|
298
|
+
const newHistory = await history.mutate(usableThreadId);
|
|
299
|
+
const lastHead = newHistory?.at(0);
|
|
300
|
+
if (lastHead) {
|
|
301
|
+
options.onFinish?.(lastHead, callbackMeta);
|
|
302
|
+
return null;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
return void 0;
|
|
306
|
+
},
|
|
307
|
+
onError(error$1) {
|
|
308
|
+
options.onError?.(error$1, callbackMeta);
|
|
309
|
+
},
|
|
310
|
+
onFinish() {
|
|
311
|
+
threadIdStreamingRef.current = null;
|
|
312
|
+
}
|
|
313
|
+
});
|
|
314
|
+
};
|
|
315
|
+
const joinStream = async (runId, lastEventId, joinOptions) => {
|
|
316
|
+
lastEventId ??= "-1";
|
|
317
|
+
if (!threadId) return;
|
|
318
|
+
const callbackMeta = {
|
|
319
|
+
thread_id: threadId,
|
|
320
|
+
run_id: runId
|
|
321
|
+
};
|
|
322
|
+
await stream.start(async (signal) => {
|
|
323
|
+
threadIdStreamingRef.current = threadId;
|
|
324
|
+
return client.runs.joinStream(threadId, runId, {
|
|
325
|
+
signal,
|
|
326
|
+
lastEventId,
|
|
327
|
+
streamMode: joinOptions?.streamMode
|
|
328
|
+
});
|
|
329
|
+
}, {
|
|
330
|
+
getMessages,
|
|
331
|
+
setMessages,
|
|
332
|
+
initialValues: historyValues,
|
|
333
|
+
callbacks: options,
|
|
334
|
+
async onSuccess() {
|
|
335
|
+
runMetadataStorage?.removeItem(`lg:stream:${threadId}`);
|
|
336
|
+
const newHistory = await history.mutate(threadId);
|
|
337
|
+
const lastHead = newHistory?.at(0);
|
|
338
|
+
if (lastHead) options.onFinish?.(lastHead, callbackMeta);
|
|
339
|
+
},
|
|
340
|
+
onError(error$1) {
|
|
341
|
+
options.onError?.(error$1, callbackMeta);
|
|
342
|
+
},
|
|
343
|
+
onFinish() {
|
|
344
|
+
threadIdStreamingRef.current = null;
|
|
345
|
+
}
|
|
346
|
+
});
|
|
347
|
+
};
|
|
348
|
+
const reconnectKey = useMemo(() => {
|
|
349
|
+
if (!runMetadataStorage || stream.isLoading) return void 0;
|
|
350
|
+
if (typeof window === "undefined") return void 0;
|
|
351
|
+
const runId = runMetadataStorage?.getItem(`lg:stream:${threadId}`);
|
|
352
|
+
if (!runId) return void 0;
|
|
353
|
+
return {
|
|
354
|
+
runId,
|
|
355
|
+
threadId
|
|
356
|
+
};
|
|
357
|
+
}, [
|
|
358
|
+
runMetadataStorage,
|
|
359
|
+
stream.isLoading,
|
|
360
|
+
threadId
|
|
361
|
+
]);
|
|
362
|
+
const shouldReconnect = !!runMetadataStorage;
|
|
363
|
+
const reconnectRef = useRef({
|
|
364
|
+
threadId,
|
|
365
|
+
shouldReconnect
|
|
366
|
+
});
|
|
367
|
+
const joinStreamRef = useRef(joinStream);
|
|
368
|
+
joinStreamRef.current = joinStream;
|
|
369
|
+
useEffect(() => {
|
|
370
|
+
if (reconnectRef.current.threadId !== threadId) reconnectRef.current = {
|
|
371
|
+
threadId,
|
|
372
|
+
shouldReconnect
|
|
373
|
+
};
|
|
374
|
+
}, [threadId, shouldReconnect]);
|
|
375
|
+
useEffect(() => {
|
|
376
|
+
if (reconnectKey && reconnectRef.current.shouldReconnect) {
|
|
377
|
+
reconnectRef.current.shouldReconnect = false;
|
|
378
|
+
joinStreamRef.current?.(reconnectKey.runId);
|
|
379
|
+
}
|
|
380
|
+
}, [reconnectKey]);
|
|
381
|
+
const error = stream.error ?? historyError ?? history.error;
|
|
382
|
+
const values = stream.values ?? historyValues;
|
|
383
|
+
return {
|
|
384
|
+
get values() {
|
|
385
|
+
trackStreamMode("values");
|
|
386
|
+
return values;
|
|
387
|
+
},
|
|
388
|
+
client,
|
|
389
|
+
assistantId: options.assistantId,
|
|
390
|
+
error,
|
|
391
|
+
isLoading: stream.isLoading,
|
|
392
|
+
stop,
|
|
393
|
+
submit,
|
|
394
|
+
joinStream,
|
|
395
|
+
branch,
|
|
396
|
+
setBranch,
|
|
397
|
+
get history() {
|
|
398
|
+
if (historyLimit === false) throw new Error("`fetchStateHistory` must be set to `true` to use `history`");
|
|
399
|
+
return branchContext.flatHistory;
|
|
400
|
+
},
|
|
401
|
+
isThreadLoading: history.isLoading && history.data == null,
|
|
402
|
+
get experimental_branchTree() {
|
|
403
|
+
if (historyLimit === false) throw new Error("`fetchStateHistory` must be set to `true` to use `experimental_branchTree`");
|
|
404
|
+
return branchContext.branchTree;
|
|
405
|
+
},
|
|
406
|
+
get interrupt() {
|
|
407
|
+
if (values != null && "__interrupt__" in values && Array.isArray(values.__interrupt__)) {
|
|
408
|
+
const valueInterrupts = values.__interrupt__;
|
|
409
|
+
if (valueInterrupts.length === 0) return { when: "breakpoint" };
|
|
410
|
+
if (valueInterrupts.length === 1) return valueInterrupts[0];
|
|
411
|
+
return valueInterrupts;
|
|
412
|
+
}
|
|
413
|
+
if (stream.isLoading) return void 0;
|
|
414
|
+
const interrupts = branchContext.threadHead?.tasks?.at(-1)?.interrupts;
|
|
415
|
+
if (interrupts == null || interrupts.length === 0) {
|
|
416
|
+
const next = branchContext.threadHead?.next ?? [];
|
|
417
|
+
if (!next.length || error != null) return void 0;
|
|
418
|
+
return { when: "breakpoint" };
|
|
419
|
+
}
|
|
420
|
+
return interrupts.at(-1);
|
|
421
|
+
},
|
|
422
|
+
get messages() {
|
|
423
|
+
trackStreamMode("messages-tuple", "values");
|
|
424
|
+
return getMessages(values);
|
|
425
|
+
},
|
|
426
|
+
getMessagesMetadata(message, index) {
|
|
427
|
+
trackStreamMode("values");
|
|
428
|
+
const streamMetadata = messageManager.get(message.id)?.metadata;
|
|
429
|
+
const historyMetadata = messageMetadata?.find((m) => m.messageId === (message.id ?? index));
|
|
430
|
+
if (streamMetadata != null || historyMetadata != null) return {
|
|
431
|
+
...historyMetadata,
|
|
432
|
+
streamMetadata
|
|
433
|
+
};
|
|
434
|
+
return void 0;
|
|
435
|
+
}
|
|
436
|
+
};
|
|
437
|
+
}
|
|
438
|
+
export {
|
|
439
|
+
useStreamLGP
|
|
440
|
+
};
|
|
441
|
+
//# sourceMappingURL=index.es28.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es28.js","sources":["../node_modules/.pnpm/@langchain+langgraph-sdk@1.3.1_@langchain+core@1.1.8_openai@6.15.0_zod@4.3.5___react-do_ee578bd802dbc67e2cb737c481ebf63e/node_modules/@langchain/langgraph-sdk/dist/react/stream.lgp.js"],"sourcesContent":["\"use client\";\n\n\nimport { Client, getClientConfigHash } from \"../client.js\";\nimport { findLast, unique } from \"../ui/utils.js\";\nimport { StreamError } from \"../ui/errors.js\";\nimport { getBranchContext } from \"../ui/branching.js\";\nimport { MessageTupleManager } from \"../ui/messages.js\";\nimport { StreamManager } from \"../ui/manager.js\";\nimport { useControllableThreadId } from \"./thread.js\";\nimport { useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore } from \"react\";\n\n//#region src/react/stream.lgp.tsx\nfunction getFetchHistoryKey(client, threadId, limit) {\n\treturn [\n\t\tgetClientConfigHash(client),\n\t\tthreadId,\n\t\tlimit\n\t].join(\":\");\n}\nfunction fetchHistory(client, threadId, options) {\n\tif (options?.limit === false) return client.threads.getState(threadId).then((state) => {\n\t\tif (state.checkpoint == null) return [];\n\t\treturn [state];\n\t});\n\tconst limit = typeof options?.limit === \"number\" ? options.limit : 10;\n\treturn client.threads.getHistory(threadId, { limit });\n}\nfunction useThreadHistory(client, threadId, limit, options) {\n\tconst key = getFetchHistoryKey(client, threadId, limit);\n\tconst [state, setState] = useState(() => ({\n\t\tkey: void 0,\n\t\tdata: void 0,\n\t\terror: void 0,\n\t\tisLoading: threadId != null\n\t}));\n\tconst clientRef = useRef(client);\n\tclientRef.current = client;\n\tconst onErrorRef = useRef(options?.onError);\n\tonErrorRef.current = options?.onError;\n\tconst fetcher = useCallback((threadId$1, limit$1) => {\n\t\tif (options.passthrough) return Promise.resolve([]);\n\t\tconst client$1 = clientRef.current;\n\t\tconst key$1 = getFetchHistoryKey(client$1, threadId$1, limit$1);\n\t\tif (threadId$1 != null) {\n\t\t\tsetState((state$1) => {\n\t\t\t\tif (state$1.key === key$1) return {\n\t\t\t\t\t...state$1,\n\t\t\t\t\tisLoading: true\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\tkey: key$1,\n\t\t\t\t\tdata: void 0,\n\t\t\t\t\terror: void 0,\n\t\t\t\t\tisLoading: true\n\t\t\t\t};\n\t\t\t});\n\t\t\treturn fetchHistory(client$1, threadId$1, { limit: limit$1 }).then((data) => {\n\t\t\t\tsetState((state$1) => {\n\t\t\t\t\tif (state$1.key !== key$1) return state$1;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tkey: key$1,\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\terror: void 0,\n\t\t\t\t\t\tisLoading: false\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t\treturn data;\n\t\t\t}, (error) => {\n\t\t\t\tsetState((state$1) => {\n\t\t\t\t\tif (state$1.key !== key$1) return state$1;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tkey: key$1,\n\t\t\t\t\t\tdata: state$1.data,\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tisLoading: false\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t\tonErrorRef.current?.(error);\n\t\t\t\treturn Promise.reject(error);\n\t\t\t});\n\t\t}\n\t\tsetState({\n\t\t\tkey: key$1,\n\t\t\tdata: void 0,\n\t\t\terror: void 0,\n\t\t\tisLoading: false\n\t\t});\n\t\treturn Promise.resolve([]);\n\t}, [options.passthrough]);\n\tuseEffect(() => {\n\t\tif (options.submittingRef.current != null && options.submittingRef.current === threadId) return;\n\t\tfetcher(threadId, limit);\n\t}, [fetcher, key]);\n\treturn {\n\t\tdata: state.data,\n\t\terror: state.error,\n\t\tisLoading: state.isLoading,\n\t\tmutate: (mutateId) => fetcher(mutateId ?? threadId, limit)\n\t};\n}\nfunction useStreamLGP(options) {\n\tconst reconnectOnMountRef = useRef(options.reconnectOnMount);\n\tconst runMetadataStorage = useMemo(() => {\n\t\tif (typeof window === \"undefined\") return null;\n\t\tconst storage = reconnectOnMountRef.current;\n\t\tif (storage === true) return window.sessionStorage;\n\t\tif (typeof storage === \"function\") return storage();\n\t\treturn null;\n\t}, []);\n\tconst client = useMemo(() => options.client ?? new Client({\n\t\tapiUrl: options.apiUrl,\n\t\tapiKey: options.apiKey,\n\t\tcallerOptions: options.callerOptions,\n\t\tdefaultHeaders: options.defaultHeaders\n\t}), [\n\t\toptions.client,\n\t\toptions.apiKey,\n\t\toptions.apiUrl,\n\t\toptions.callerOptions,\n\t\toptions.defaultHeaders\n\t]);\n\tconst [messageManager] = useState(() => new MessageTupleManager());\n\tconst [stream] = useState(() => new StreamManager(messageManager, { throttle: options.throttle ?? false }));\n\tuseSyncExternalStore(stream.subscribe, stream.getSnapshot, stream.getSnapshot);\n\tconst [threadId, onThreadId] = useControllableThreadId(options);\n\tconst trackStreamModeRef = useRef([]);\n\tconst trackStreamMode = useCallback((...mode) => {\n\t\tconst ref = trackStreamModeRef.current;\n\t\tfor (const m of mode) if (!ref.includes(m)) ref.push(m);\n\t}, []);\n\tconst hasUpdateListener = options.onUpdateEvent != null;\n\tconst hasCustomListener = options.onCustomEvent != null;\n\tconst hasLangChainListener = options.onLangChainEvent != null;\n\tconst hasDebugListener = options.onDebugEvent != null;\n\tconst hasCheckpointListener = options.onCheckpointEvent != null;\n\tconst hasTaskListener = options.onTaskEvent != null;\n\tconst callbackStreamMode = useMemo(() => {\n\t\tconst modes = [];\n\t\tif (hasUpdateListener) modes.push(\"updates\");\n\t\tif (hasCustomListener) modes.push(\"custom\");\n\t\tif (hasLangChainListener) modes.push(\"events\");\n\t\tif (hasDebugListener) modes.push(\"debug\");\n\t\tif (hasCheckpointListener) modes.push(\"checkpoints\");\n\t\tif (hasTaskListener) modes.push(\"tasks\");\n\t\treturn modes;\n\t}, [\n\t\thasUpdateListener,\n\t\thasCustomListener,\n\t\thasLangChainListener,\n\t\thasDebugListener,\n\t\thasCheckpointListener,\n\t\thasTaskListener\n\t]);\n\tconst threadIdRef = useRef(threadId);\n\tconst threadIdStreamingRef = useRef(null);\n\tuseEffect(() => {\n\t\tif (threadIdRef.current !== threadId) {\n\t\t\tthreadIdRef.current = threadId;\n\t\t\tstream.clear();\n\t\t}\n\t}, [threadId, stream]);\n\tconst historyLimit = typeof options.fetchStateHistory === \"object\" && options.fetchStateHistory != null ? options.fetchStateHistory.limit ?? false : options.fetchStateHistory ?? false;\n\tconst builtInHistory = useThreadHistory(client, threadId, historyLimit, {\n\t\tpassthrough: options.thread != null,\n\t\tsubmittingRef: threadIdStreamingRef,\n\t\tonError: options.onError\n\t});\n\tconst history = options.thread ?? builtInHistory;\n\tconst getMessages = (value) => {\n\t\tconst messagesKey = options.messagesKey ?? \"messages\";\n\t\treturn Array.isArray(value[messagesKey]) ? value[messagesKey] : [];\n\t};\n\tconst setMessages = (current, messages) => {\n\t\tconst messagesKey = options.messagesKey ?? \"messages\";\n\t\treturn {\n\t\t\t...current,\n\t\t\t[messagesKey]: messages\n\t\t};\n\t};\n\tconst [branch, setBranch] = useState(\"\");\n\tconst branchContext = getBranchContext(branch, history.data ?? void 0);\n\tconst historyValues = branchContext.threadHead?.values ?? options.initialValues ?? {};\n\tconst historyError = (() => {\n\t\tconst error$1 = branchContext.threadHead?.tasks?.at(-1)?.error;\n\t\tif (error$1 == null) return void 0;\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(error$1);\n\t\t\tif (StreamError.isStructuredError(parsed)) return new StreamError(parsed);\n\t\t\treturn parsed;\n\t\t} catch {}\n\t\treturn error$1;\n\t})();\n\tconst messageMetadata = (() => {\n\t\tconst alreadyShown = /* @__PURE__ */ new Set();\n\t\treturn getMessages(historyValues).map((message, idx) => {\n\t\t\tconst messageId = message.id ?? idx;\n\t\t\tconst firstSeenState = findLast(history.data ?? [], (state) => getMessages(state.values).map((m, idx$1) => m.id ?? idx$1).includes(messageId));\n\t\t\tconst checkpointId = firstSeenState?.checkpoint?.checkpoint_id;\n\t\t\tlet branch$1 = checkpointId != null ? branchContext.branchByCheckpoint[checkpointId] : void 0;\n\t\t\tif (!branch$1?.branch?.length) branch$1 = void 0;\n\t\t\tconst optionsShown = branch$1?.branchOptions?.flat(2).join(\",\");\n\t\t\tif (optionsShown) {\n\t\t\t\tif (alreadyShown.has(optionsShown)) branch$1 = void 0;\n\t\t\t\talreadyShown.add(optionsShown);\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tmessageId: messageId.toString(),\n\t\t\t\tfirstSeenState,\n\t\t\t\tbranch: branch$1?.branch,\n\t\t\t\tbranchOptions: branch$1?.branchOptions\n\t\t\t};\n\t\t});\n\t})();\n\tconst stop = () => stream.stop(historyValues, { onStop: (args) => {\n\t\tif (runMetadataStorage && threadId) {\n\t\t\tconst runId = runMetadataStorage.getItem(`lg:stream:${threadId}`);\n\t\t\tif (runId) client.runs.cancel(threadId, runId);\n\t\t\trunMetadataStorage.removeItem(`lg:stream:${threadId}`);\n\t\t}\n\t\toptions.onStop?.(args);\n\t} });\n\tconst submit = async (values$1, submitOptions) => {\n\t\tconst checkpointId = submitOptions?.checkpoint?.checkpoint_id;\n\t\tsetBranch(checkpointId != null ? branchContext.branchByCheckpoint[checkpointId]?.branch ?? \"\" : \"\");\n\t\tconst includeImplicitBranch = historyLimit === true || typeof historyLimit === \"number\";\n\t\tconst shouldRefetch = options.onFinish != null || includeImplicitBranch;\n\t\tlet callbackMeta;\n\t\tlet rejoinKey;\n\t\tlet usableThreadId = threadId;\n\t\tawait stream.start(async (signal) => {\n\t\t\tstream.setStreamValues((values$2) => {\n\t\t\t\tconst prev = {\n\t\t\t\t\t...historyValues,\n\t\t\t\t\t...values$2 ?? {}\n\t\t\t\t};\n\t\t\t\tif (submitOptions?.optimisticValues != null) return {\n\t\t\t\t\t...prev,\n\t\t\t\t\t...typeof submitOptions.optimisticValues === \"function\" ? submitOptions.optimisticValues(prev) : submitOptions.optimisticValues\n\t\t\t\t};\n\t\t\t\treturn { ...prev };\n\t\t\t});\n\t\t\tif (!usableThreadId) {\n\t\t\t\tconst thread = await client.threads.create({\n\t\t\t\t\tthreadId: submitOptions?.threadId,\n\t\t\t\t\tmetadata: submitOptions?.metadata,\n\t\t\t\t\tsignal\n\t\t\t\t});\n\t\t\t\tusableThreadId = thread.thread_id;\n\t\t\t\tthreadIdRef.current = usableThreadId;\n\t\t\t\tthreadIdStreamingRef.current = usableThreadId;\n\t\t\t\tonThreadId(usableThreadId);\n\t\t\t}\n\t\t\tif (!usableThreadId) throw new Error(\"Failed to obtain valid thread ID.\");\n\t\t\tthreadIdStreamingRef.current = usableThreadId;\n\t\t\tconst streamMode = unique([\n\t\t\t\t...submitOptions?.streamMode ?? [],\n\t\t\t\t...trackStreamModeRef.current,\n\t\t\t\t...callbackStreamMode\n\t\t\t]);\n\t\t\tlet checkpoint = submitOptions?.checkpoint ?? (includeImplicitBranch ? branchContext.threadHead?.checkpoint : void 0) ?? void 0;\n\t\t\tif (submitOptions?.checkpoint === null) checkpoint = void 0;\n\t\t\tif (checkpoint != null) delete checkpoint.thread_id;\n\t\t\tconst streamResumable = submitOptions?.streamResumable ?? !!runMetadataStorage;\n\t\t\treturn client.runs.stream(usableThreadId, options.assistantId, {\n\t\t\t\tinput: values$1,\n\t\t\t\tconfig: submitOptions?.config,\n\t\t\t\tcontext: submitOptions?.context,\n\t\t\t\tcommand: submitOptions?.command,\n\t\t\t\tinterruptBefore: submitOptions?.interruptBefore,\n\t\t\t\tinterruptAfter: submitOptions?.interruptAfter,\n\t\t\t\tmetadata: submitOptions?.metadata,\n\t\t\t\tmultitaskStrategy: submitOptions?.multitaskStrategy,\n\t\t\t\tonCompletion: submitOptions?.onCompletion,\n\t\t\t\tonDisconnect: submitOptions?.onDisconnect ?? (streamResumable ? \"continue\" : \"cancel\"),\n\t\t\t\tsignal,\n\t\t\t\tcheckpoint,\n\t\t\t\tstreamMode,\n\t\t\t\tstreamSubgraphs: submitOptions?.streamSubgraphs,\n\t\t\t\tstreamResumable,\n\t\t\t\tdurability: submitOptions?.durability,\n\t\t\t\tonRunCreated(params) {\n\t\t\t\t\tcallbackMeta = {\n\t\t\t\t\t\trun_id: params.run_id,\n\t\t\t\t\t\tthread_id: params.thread_id ?? usableThreadId\n\t\t\t\t\t};\n\t\t\t\t\tif (runMetadataStorage) {\n\t\t\t\t\t\trejoinKey = `lg:stream:${usableThreadId}`;\n\t\t\t\t\t\trunMetadataStorage.setItem(rejoinKey, callbackMeta.run_id);\n\t\t\t\t\t}\n\t\t\t\t\toptions.onCreated?.(callbackMeta);\n\t\t\t\t}\n\t\t\t});\n\t\t}, {\n\t\t\tgetMessages,\n\t\t\tsetMessages,\n\t\t\tinitialValues: historyValues,\n\t\t\tcallbacks: options,\n\t\t\tasync onSuccess() {\n\t\t\t\tif (rejoinKey) runMetadataStorage?.removeItem(rejoinKey);\n\t\t\t\tif (shouldRefetch) {\n\t\t\t\t\tconst newHistory = await history.mutate(usableThreadId);\n\t\t\t\t\tconst lastHead = newHistory?.at(0);\n\t\t\t\t\tif (lastHead) {\n\t\t\t\t\t\toptions.onFinish?.(lastHead, callbackMeta);\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn void 0;\n\t\t\t},\n\t\t\tonError(error$1) {\n\t\t\t\toptions.onError?.(error$1, callbackMeta);\n\t\t\t},\n\t\t\tonFinish() {\n\t\t\t\tthreadIdStreamingRef.current = null;\n\t\t\t}\n\t\t});\n\t};\n\tconst joinStream = async (runId, lastEventId, joinOptions) => {\n\t\tlastEventId ??= \"-1\";\n\t\tif (!threadId) return;\n\t\tconst callbackMeta = {\n\t\t\tthread_id: threadId,\n\t\t\trun_id: runId\n\t\t};\n\t\tawait stream.start(async (signal) => {\n\t\t\tthreadIdStreamingRef.current = threadId;\n\t\t\treturn client.runs.joinStream(threadId, runId, {\n\t\t\t\tsignal,\n\t\t\t\tlastEventId,\n\t\t\t\tstreamMode: joinOptions?.streamMode\n\t\t\t});\n\t\t}, {\n\t\t\tgetMessages,\n\t\t\tsetMessages,\n\t\t\tinitialValues: historyValues,\n\t\t\tcallbacks: options,\n\t\t\tasync onSuccess() {\n\t\t\t\trunMetadataStorage?.removeItem(`lg:stream:${threadId}`);\n\t\t\t\tconst newHistory = await history.mutate(threadId);\n\t\t\t\tconst lastHead = newHistory?.at(0);\n\t\t\t\tif (lastHead) options.onFinish?.(lastHead, callbackMeta);\n\t\t\t},\n\t\t\tonError(error$1) {\n\t\t\t\toptions.onError?.(error$1, callbackMeta);\n\t\t\t},\n\t\t\tonFinish() {\n\t\t\t\tthreadIdStreamingRef.current = null;\n\t\t\t}\n\t\t});\n\t};\n\tconst reconnectKey = useMemo(() => {\n\t\tif (!runMetadataStorage || stream.isLoading) return void 0;\n\t\tif (typeof window === \"undefined\") return void 0;\n\t\tconst runId = runMetadataStorage?.getItem(`lg:stream:${threadId}`);\n\t\tif (!runId) return void 0;\n\t\treturn {\n\t\t\trunId,\n\t\t\tthreadId\n\t\t};\n\t}, [\n\t\trunMetadataStorage,\n\t\tstream.isLoading,\n\t\tthreadId\n\t]);\n\tconst shouldReconnect = !!runMetadataStorage;\n\tconst reconnectRef = useRef({\n\t\tthreadId,\n\t\tshouldReconnect\n\t});\n\tconst joinStreamRef = useRef(joinStream);\n\tjoinStreamRef.current = joinStream;\n\tuseEffect(() => {\n\t\tif (reconnectRef.current.threadId !== threadId) reconnectRef.current = {\n\t\t\tthreadId,\n\t\t\tshouldReconnect\n\t\t};\n\t}, [threadId, shouldReconnect]);\n\tuseEffect(() => {\n\t\tif (reconnectKey && reconnectRef.current.shouldReconnect) {\n\t\t\treconnectRef.current.shouldReconnect = false;\n\t\t\tjoinStreamRef.current?.(reconnectKey.runId);\n\t\t}\n\t}, [reconnectKey]);\n\tconst error = stream.error ?? historyError ?? history.error;\n\tconst values = stream.values ?? historyValues;\n\treturn {\n\t\tget values() {\n\t\t\ttrackStreamMode(\"values\");\n\t\t\treturn values;\n\t\t},\n\t\tclient,\n\t\tassistantId: options.assistantId,\n\t\terror,\n\t\tisLoading: stream.isLoading,\n\t\tstop,\n\t\tsubmit,\n\t\tjoinStream,\n\t\tbranch,\n\t\tsetBranch,\n\t\tget history() {\n\t\t\tif (historyLimit === false) throw new Error(\"`fetchStateHistory` must be set to `true` to use `history`\");\n\t\t\treturn branchContext.flatHistory;\n\t\t},\n\t\tisThreadLoading: history.isLoading && history.data == null,\n\t\tget experimental_branchTree() {\n\t\t\tif (historyLimit === false) throw new Error(\"`fetchStateHistory` must be set to `true` to use `experimental_branchTree`\");\n\t\t\treturn branchContext.branchTree;\n\t\t},\n\t\tget interrupt() {\n\t\t\tif (values != null && \"__interrupt__\" in values && Array.isArray(values.__interrupt__)) {\n\t\t\t\tconst valueInterrupts = values.__interrupt__;\n\t\t\t\tif (valueInterrupts.length === 0) return { when: \"breakpoint\" };\n\t\t\t\tif (valueInterrupts.length === 1) return valueInterrupts[0];\n\t\t\t\treturn valueInterrupts;\n\t\t\t}\n\t\t\tif (stream.isLoading) return void 0;\n\t\t\tconst interrupts = branchContext.threadHead?.tasks?.at(-1)?.interrupts;\n\t\t\tif (interrupts == null || interrupts.length === 0) {\n\t\t\t\tconst next = branchContext.threadHead?.next ?? [];\n\t\t\t\tif (!next.length || error != null) return void 0;\n\t\t\t\treturn { when: \"breakpoint\" };\n\t\t\t}\n\t\t\treturn interrupts.at(-1);\n\t\t},\n\t\tget messages() {\n\t\t\ttrackStreamMode(\"messages-tuple\", \"values\");\n\t\t\treturn getMessages(values);\n\t\t},\n\t\tgetMessagesMetadata(message, index) {\n\t\t\ttrackStreamMode(\"values\");\n\t\t\tconst streamMetadata = messageManager.get(message.id)?.metadata;\n\t\t\tconst historyMetadata = messageMetadata?.find((m) => m.messageId === (message.id ?? index));\n\t\t\tif (streamMetadata != null || historyMetadata != null) return {\n\t\t\t\t...historyMetadata,\n\t\t\t\tstreamMetadata\n\t\t\t};\n\t\t\treturn void 0;\n\t\t}\n\t};\n}\n\n//#endregion\nexport { useStreamLGP };\n//# sourceMappingURL=stream.lgp.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,122 @@
|
|
|
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));
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
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
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
}
|
|
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;
|
|
114
|
+
}
|
|
115
|
+
function decodeArraysToJson(decoder, data) {
|
|
116
|
+
return JSON.parse(decoder.decode(joinArrays(data)));
|
|
117
|
+
}
|
|
118
|
+
export {
|
|
119
|
+
BytesLineDecoder,
|
|
120
|
+
SSEDecoder
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=index.es29.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es29.js","sources":["../node_modules/.pnpm/@langchain+langgraph-sdk@1.3.1_@langchain+core@1.1.8_openai@6.15.0_zod@4.3.5___react-do_ee578bd802dbc67e2cb737c481ebf63e/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]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import React__default from "react";
|
|
3
|
+
import { ChatRuntimeProvider } from "./index.es4.js";
|
|
4
|
+
import { CustomComponentProvider } from "./index.es8.js";
|
|
5
|
+
import { FileProvider } from "./index.es7.js";
|
|
6
|
+
import { StreamProvider } from "./index.es6.js";
|
|
7
|
+
import { ThreadProvider } from "./index.es5.js";
|
|
8
|
+
import { SuggestionProvider } from "./index.es9.js";
|
|
9
|
+
function ChatProvider({
|
|
10
|
+
apiUrl,
|
|
11
|
+
assistantId,
|
|
12
|
+
identity,
|
|
13
|
+
children,
|
|
14
|
+
customComponents,
|
|
15
|
+
fallbackMessage
|
|
16
|
+
}) {
|
|
17
|
+
return /* @__PURE__ */ jsx(React__default.Suspense, { fallback: /* @__PURE__ */ jsx("div", { children: "Loading chat..." }), children: /* @__PURE__ */ jsx(
|
|
18
|
+
ChatRuntimeProvider,
|
|
19
|
+
{
|
|
20
|
+
apiUrl,
|
|
21
|
+
assistantId,
|
|
22
|
+
identity,
|
|
23
|
+
children: /* @__PURE__ */ jsx(ThreadProvider, { children: /* @__PURE__ */ jsx(StreamProvider, { fallbackMessage, children: /* @__PURE__ */ jsx(SuggestionProvider, { children: /* @__PURE__ */ jsx(CustomComponentProvider, { initialComponents: customComponents, children: /* @__PURE__ */ jsx(FileProvider, { children }) }) }) }) })
|
|
24
|
+
}
|
|
25
|
+
) });
|
|
26
|
+
}
|
|
27
|
+
export {
|
|
28
|
+
ChatProvider
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=index.es3.js.map
|